2016-02-02 101 views
-1

我使用3表模型来构建一种标签系统。MySQL加入和合并多个结果

表1:客户端

  • CLIENT_ID(PK)
  • CLIENT_NAME

表2:工作场所

  • workplace_id(PK)
  • workplace_name

表3:ClientWorkplace:

  • CLIENT_ID(PK)
  • workplace_id(PK)

一个客户被允许具有多个工作场所。以下是表3中的示例数据:

  • 1 | 1
  • 1 | 3
  • 1 | 5

我建立了插入和删除客户端页面成功。目前,我正在构建显示当前客户名称和复选框的编辑客户端页面,输入&工作地点名称作为所有工作类型的标签(哪些与当前客户端有关系将被检查)。但我不知道正确的SQL查询语句。

的预期导致了特定的client_id 1应该主要是:

cliend_id:1 | client_name:“我的客户名称”| workplace_ids:“1,3,5”

请帮忙!非常感谢你 !

+0

您能告诉我们您的预期产量,以免混淆吗?这看起来像一系列简单的连接。 –

回答

0

完整的参考,您可以使用JOIN小号获取它们。

SELECT workplace_name, client_name 
FROM Workplaces w 
INNER JOIN ClientWorkplace cw ON cw.workplace_id = w.workplace_id 
INNER JOIN Clients c ON cw.client_id = c.client_id 
ORDER BY w.workplace_id 

它将获取所有工作场所和所有客户。运行循环并根据需要处理数据。

+0

非常感谢您的回答! – LocNguyen

0

您可以使用它来加入你的3个表

SELECT c.client_name, w.workplace_name 
FROM Clients c 
LEFT JOIN ClientWorkplace cwp ON cwp.client_id = c.client_id 
LEFT JOIN Workplaces w ON w.workplace_id = cwp.workplace_id 

下面是MYSQL JOIN Syntax

+0

非常感谢您的回答! – LocNguyen