Получение списка для айди in из таблицы

M
На сайте с 20.08.2004
Offline
376
619

По определенным условиям нужно выбрать данные (айди) из таблицы что бы в будущем использовать их в in. Самый простой пример

select id from table where a > b

и запрос где эти айди используются

select * from table2 where parent_id in (....)

сейчас делаю

а. выборку

б. из массива типа

Array

(

[0] => Array

(

[comment_id] => 1377021

)

[1] => Array

(

[comment_id] => 1377022

)

[2] => Array

(

[comment_id] => 1377023

)

[3] => Array

(

[comment_id] => 1377024

)

....

)

переделываю в такой массив

Array

(

[0] => 1377021

[1] => 1377022

[2] => 1377023

[3] => 1377024

)

в. делаю выборку

как сразу получить вот такой массив?

Array

(

[0] => 1377021

[1] => 1377022

[2] => 1377023

[3] => 1377024

)

спасибо

...

переделываю в массив

отец сыночка, лапочки дочки и еще одного сыночка
ДП
На сайте с 23.11.2009
Offline
203
#1

Если отвечать на ваш вопрос - то посмотрите функцию array_values()

Если решать изначально поставленную задачу - то можно так:

select * from table2 where parent_id in (select id from table where a > b

)

alex_zlo
На сайте с 13.01.2008
Offline
29
#2
select * from table2 where parent_id in (select id from table where a > b
)

помоему не очень быстрый запрос получился)

либо

array_values()

или


$newArr = array();
foreach($oldArr as $key=>$item){
$newArr[$key] = $item['comment_id'];
}
M
На сайте с 20.08.2004
Offline
376
#3

спасибо.

Дикий пионер:
select * from table2 where parent_id in (select id from table where a > b

это знаю. но нужно получить адйи для удаления что бы вывести о них информацию

Дикий пионер:
array_values()
попробую

Miracle добавил 05.12.2011 в 09:42

alex_zlo:
или

где то так и делаю

$delete_comment_id = array();
foreach ($talk_comments as $comment)
{
$delete_comment_id[] = $comment[comment_id];
}

но искал варианты интересней

Miracle добавил 05.12.2011 в 09:48

array_values ничего не изменил в моем случае

ДП
На сайте с 23.11.2009
Offline
203
#4
alex_zlo:
помоему не очень быстрый запрос получился)

Я бенчмарки не проводил, но почему он должен получитья медленнее, чем оба этих запроса+обработка на php?

ТС, почему вам не подходит такой сборный запрос, если вы даете то же самое по сути? Или у вас есть еще какая-то операция, про которую в вопросе нет и она важна?

Как у вас в это запросе "select * from table2 where parent_id in (....)" используются id из првого? Они в in()?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий