在MYSQL中联接多个表

Shan

这是我尝试完成的那种连接的示例。http://sqlfiddle.com/#!2/aab00/3

您会看到有些记录(Name2, Name3)满足该WHERE子句但没有显示。另外Name1,显示的记录也不准确。

戈登·利诺夫(Gordon Linoff)

您应该在joins之前进行汇总

SELECT t3.PersonName AS Name,
       COALESCE(t1.NumberOfCars, 0) AS NumberOfCars,
       COALESCE(TMobile, 0) AS TMobileConnections,
       COALESCE(ATT, 0) AS ATTConnections
FROM Table3 t3 LEFT OUTER JOIN
     Table1 t1
     ON t3.PersonSSN = t1.PersonSSN and t1.State = 'FL' LEFT OUTER JOIN
     (select t2.PersonSSN, t2.state,
             max(t2.Carrier = 'T Mobile') as TMobile,
             max(t2.Carrier = 'AT&T') as ATT
      from Table2 t2
      group by t2.PersonSSN, t2.state
     ) t2
     ON t3.PersonSSN = t2.PersonSSN and t2.State = 'FL';

您也可以在子查询中按状态进行过滤,但这适用于此查询。

请注意,我将所有双引号都更改为单引号。始终对字符串和日期常量使用单引号-这是标准SQL。必要时,请使用双引号或反引号将标识符引起来。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章