Хорошо, поэтому у меня есть две таблицы со многими столбцами, но для иллюстрации я имею a
и b
:
a: b:
+---+-----+ +---+------+-----+
|id |name | |id | a_id |size |
+---+-----+ +---+------+-----+
Я хочу, чтобы SELECT * FROM a
а затем для каждого a'
в a
Я хочу SELECT id FROM b WHERE a_id = a'.id
. Но могу ли я создать один курьер, чтобы результаты стали:
ab:
+---+-----+--------------------------------+
|id |name | b_idx_1, b_idx_2, ... b_idx_n |
+---+-----+--------------------------------+
Я попытался: SELECT id, name, (SELECT id FROM b WHERE b.a_id = a.id) FROM a WHERE a.name LIKE 'Random Name'
Но затем я получаю сообщение об ошибке, при этом подзапрос возвращает более одной строки,
SELECT a.id, a.name, GROUP_CONCAT(b.id)
FROM a
INNER JOIN b
ON b.a_id = a.id
WHERE a.name LIKE 'Random Name'
ON
и не могли бы вы объяснить, как он работает? Тогда я приму этот ответ :)
попробуйте этот join query
select a.id,a.name,b.* from a join b on a.id=b.a_id
join
используется вместо этого?hint:join query