我需要连接 4 个表才能获得所需的报告。但我对如何编写查询感到困惑。以下是表格的示例:
客户端表
client_id | client_name | con_id
----------:|:-------------:|:-------
1 | ABC | 1
2 | DEF | 1
3 | GHI | 2
顾问
con_id | con_name
-------:|:---------
1 | Ani
2 | Robby
烫发
pid | client_id | date
----:|:-----------:|:-----------
1 | 1 | 2014-08-09
2 | 1 | 2014-03-02
3 | 2 | 2014-03-02
温度
tid | client_id | date
----:|:-----------:|:-----------
1 | 2 | 2013-02-09
2 | 3 | 2011-03-02
3 | 3 | 2012-04-02
我想展示的报告的最终结果是这样的:
client_id | client_name | perm(COUNT) | temp(COUNT) | con_name
----------:|:-------------:|:-------------:|:-------------:|:---------
1 | ABC | 2 | 0 | Ani
2 | DEF | 1 | 1 | Ani
3 | GHI | 0 | 2 | Robby
我正在尝试使用 LEFT OUTER JOIN
,但没有得到我想要的结果。谁能帮我弄清楚查询?
最佳答案
这是一个带有计数和分组依据的简单外连接查询,只需将您的 client
表与相关表连接起来,并只计算不同的关联
select
c.client_id,
c.client_name,
count(distinct p.pid) perm_count,
count(distinct t.tid) temp_count,
cn.con_name
from client c
left join Consultant cn on(c.con_id = cn.con_id)
left join Perm p on(c.client_id = p.client_id)
left join `Temp` t on(c.client_id = t.client_id)
group by c.client_id
Fiddle Demo
关于php - SQL查询连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25442334/