-1

actingwritingfilm、 の4 つのテーブルがあります。tech

email         | skill
-----------------------
foo@bar.com   | acting
foo1@bar.com  | acting
foo2@bar.com  | acting
...           | ...

email         | skill
-----------------------
foo@bar.com   | writing
foo7@bar.com  | writing
foo8@bar.com  | writing
...           | ...

email         | skill
-----------------------
foo4@bar.com  | film
foo9@bar.com  | film
foo12@bar.com | film
...           | ...

email         | skill
-----------------------
foo3@bar.com  | tech
foo4@bar.com  | tech
foo7@bar.com  | tech
...           | ...

skillsすべての電子メール アドレスが含まれ、各アドレスに関連するスキルがスキル フィールドに連結されるように、新しいテーブルを作成したいと考えています。

email         | skill
-----------------------
foo@bar.com   | acting, writing
foo1@bar.com  | writing, film
foo2@bar.com  | acting, film, tech
...           | ...

ユニオンを介して完全な外部結合をいじりましたが、うまくいかないようです。

更新: これらのテーブルがいかに貧弱に設計されているかを理解しています。上記のテーブルを使用してフランケンシュタインのレガシー CRM からデータを移行しています。新しいテーブルに値をカンマで区切って新しい CRM にインポートできるようにする必要があります。

4

1 に答える 1

3
SELECT email, GROUP_CONCAT(skill ORDER BY skill) skill
FROM
(
    SELECT email, skill FROM acting
    UNION
    SELECT email, skill FROM writing
    UNION
    SELECT email, skill FROM film
    UNION
    SELECT email, skill FROM tech
) x
GROUP BY email

SQLFiddle デモ

于 2012-10-18T14:02:53.570 に答える