Как использовать UNION и GROUP_CONCAT вместе

У меня проблема с правильным синтаксисом для использования UNION и GROUP_CONCAT в этой ситуации:

У меня есть 4 таблицы:

  • base: Это основная таблица с большим количеством столбцов.
  • mm: это таблица mm, которая указывает на следующие две таблицы с использованием поля «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

Теперь вопрос: Как можно Я объединяю эти два представления в одном представлении?

5
задан Memochipan 17 August 2011 в 20:24
поделиться