Вытащить все записи из 3 таблицы
SELECT *,
CASE
WHEN tag THEN (SELECT title FROM tag WHERE id IN(tag))
END
FROM news WHERE id = 3992
Таким образом на выходе мне удается вытащить всего 1 тег и на выходе он как строчка. Возможно получить список тегов из третей таблицы в виде массива? Из-под подзапроса?
news
+-------+----------------+-----------
| ID | name | tag_ID
+-------+----------------+-----------
| 1 | SIMPLE1 | 1,2
+-------+----------------+-----------
| 2 | SIMPLE2 | 3
+-------+----------------+-----------
| 3 | SIMPLE3 |
+-------+----------------+-----------
tag
+-------+----------------+
| ID | name |
+-------+----------------+
| 1 | SIMPLE5 |
+-------+----------------+
| 2 | SIMPLE6 |
+-------+----------------+
| 3 | SIMPLE7 |
+-------+----------------+
К примеру, берем 1
запись из новостей, у нее теги 1,2
То есть, как в запросе выполнить запрос во вторую таблицу и вытащить из нее теги с id 1,2
Источник: Stack Overflow на русском