Как получить строки из БД по многим идентификаторам - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть массив идентификаторов ставок из одной таблицы, и мне нужно получить ставки из таблицы bids по этим идентификаторам. Можно ли получить их одним запросом, не делая много запросов к БД или не делая сверхдлинный запрос с

WHERE ... 
  AND ... 
  AND ...
   -- etc

с PDO ??? и "представления в БД" также не являются опцией

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Вы объединяете две таблицы (вашу первую таблицу, которую я назвал first_table, поскольку вы не указали, как она называлась) по их общим идентификаторам, которая будет извлекать все результаты, где идентификатор существует в обеихстолы.

Настройте имена столбцов и таблицы соответственно.

SELECT b.*
FROM first_table a
JOIN bids b
  ON b.id = a.id
1 голос
/ 04 апреля 2019

Вам, вероятно, нужно что-то вроде:

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, вам придется проделать дополнительную работу, чтобы найти совпадения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...