【发布时间】:2011-11-05 19:30:04
【问题描述】:
我有一个名为deals 的表,其中存储了client_id1、client_id2、client_id3。
这些 id 对应于具有 clientName 和 client_id 字段的 clients 表。
如何创建一个名称的字符串数组,其 id 存在于表交易的三列中的任何一列中。
【问题讨论】:
-
你或许应该考虑规范化你的数据。
我有一个名为deals 的表,其中存储了client_id1、client_id2、client_id3。
这些 id 对应于具有 clientName 和 client_id 字段的 clients 表。
如何创建一个名称的字符串数组,其 id 存在于表交易的三列中的任何一列中。
【问题讨论】:
SELECT GROUP_CONCAT(Client) FROM (
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id1 = clients.client_id
UNION ALL
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id2 = clients.client_id
UNION ALL
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id3 = clients.client_id)
GROUP BY Client
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id1 = clients.client_id
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id1 = clients.client_id
UNION ALL
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id2 = clients.client_id
UNION ALL
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id3 = clients.client_id)
SELECT GROUP_CONCAT(Client) FROM (
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id1 = clients.client_id
UNION ALL
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id2 = clients.client_id
UNION ALL
SELECT clientName as Client
FROM deals JOIN clients
ON deals.client_id3 = clients.client_id)
GROUP BY Client
【讨论】: