MySQL加入并合并多个结果

时间:2016-02-02 05:05:03

标签: php mysql

我使用3表模型构建了一种标签系统。

表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"

请帮忙!非常感谢你!

2 个答案:

答案 0 :(得分: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

的完整参考

答案 1 :(得分: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

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