У меня есть две таблицы в отношении «один ко многим».SELECT as alias to another SELECT
Таким образом, в таблице person
У меня есть идентификатор, имя и т.д., и в таблице tags
У меня есть идентификатор, PersonId, тег
И один человек может иметь N записей с различными тегами.
Я думал, что я мог бы сделать что-то вроде
SELECT id, name,
(SELECT * FROM tags WHERE personid = id) AS tags
FROM person
И я ожидаю получить строку результата с НОМЕР (ID), STRING (имя), ARRAY (теги). Я знаю, как это сделать с циклом for, с двумя отдельными запросами, но я думаю, что MySQL должен быть лучшим для этого.
Если я делаю JOIN, я получаю много строк, bu. Я хочу сгруппировать все теги в массив-входе каждой строки, которую я получаю, т.е. один ряд на человека.
Возможно ли это?
Вы должны использовать псевдоним для поля тегов, как 'GROUP_CONCAT (...) AS теги '. В противном случае было бы трудно получить доступ к этой области на стороне приложения. –