У меня проблема с правильным синтаксисом для использования UNION и GROUP_CONCAT в этой ситуации:
У меня есть 4 таблицы:
- base: главная таблица с большим количествомстолбцы.
- мм: таблица мм, которая указывает на следующие две таблицы с помощью поля 'tablenames'.
- t1 и t2, в которых хранятся связанные данные.
Записи в «базовых» таблицах могут иметь много связанных записей в t1 и t2 через таблицу mm.
Я создаю VIEW в MySQL, и мне нужно, чтобы все эти связанные записи отображались в одном столбце, разделенномзапятые.
Это базовый код MySQL:
SELECT base.uid, t1.nombre_es
FROM base
INNER JOIN mm
ON mm.uid_local=base.uid
INNER JOIN t1
ON mm.uid_foreign=t1.uid WHERE mm.tablenames = 't1'
UNION
SELECT base.uid, t2.nombre_es
FROM base
INNER JOIN mm
ON mm.uid_local=base.uid
INNER JOIN t2
ON mm.uid_foreign=t2.uid WHERE mm.tablenames = 't2'
Заранее спасибо.
Я мог бы сделать это с помощью двух ПРОСМОТРОВ, первый с использованием кодавыше с именем 'viewtest', а вторая с этим кодом:
SELECT base.uid,
GROUP_CONCAT(DISTINCT vi.nombre_es ORDER BY vi.nombre_es SEPARATOR ',') as nombre
FROM base
INNER JOIN viewtest as vi
ON vi.uid=base.uid
GROUP BY uid
Теперь вопрос ¿Как я могу объединить эти два представления в одном представлении?