#php #mysql #pdo
#php #mysql #pdo
Вопрос:
У меня есть массив идентификаторов ставок из одной таблицы, и я должен получать ставки из bids
таблицы по этим идентификаторам. Возможно ли получить их одним запросом, не делая много-много запросов к БД или не делая сверхдлинный запрос с
WHERE ...
AND ...
AND ...
-- etc
с помощью PDO??? и «просмотры в БД» тоже не вариант
Ответ №1:
Вероятно, вам нужно что-то вроде:
SELECT b.*
FROM bids b
WHERE id IN (SELECT bid_id FROM table1);
Или, может быть:
SELECT b.*
FROM bids b
WHERE EXISTS (SELECT 1 FROM table1 t1 WHERE t1.bid_id = b.id);
То есть, в идеале вы должны обрабатывать это в MySQL, если можете. Как только вы перенесете свой массив идентификаторов ставок из базы данных в PHP, вам придется проделать больше работы, чтобы найти совпадения.
Ответ №2:
Вы создаете соединение для двух таблиц (вашей первой таблицы, которую я вызвал first_table
, поскольку вы не указали, как она была вызвана) по их общим идентификаторам, что приведет к получению всех результатов, где идентификатор существует в обеих таблицах.
Соответствующим образом настройте имена столбцов и таблиц.
SELECT b.*
FROM first_table a
JOIN bids b
ON b.id = a.id