如何查询指定城市客户及其Bricklayers表关联的工作信息?
正确的查询方案:使用左连接(LEFT JOIN)
嘿,我懂你碰到的问题了——之前用内连接(INNER JOIN)的话,只会返回那些在Bricklayers表里有对应工作记录的客户,而你需要的是所有来自Charlotte、Raleigh、Wilmington这三个城市的客户,不管他们有没有瓦工工作记录对吧?
解决这个问题的关键是用左连接(LEFT JOIN),它会保留左表(这里是Client表)中所有符合筛选条件的记录,即使右表(Bricklayers表)没有匹配的记录,对应的字段会显示NULL。
下面是完整的SQL查询语句:
SELECT c.clientID, c.clientName, c.clientCity, b.jobNum, b.startDate FROM Client c LEFT JOIN Bricklayers b ON c.clientID = b.clientID WHERE c.clientCity IN ('Charlotte', 'Raleigh', 'Wilmington');
关键说明:
LEFT JOIN:确保所有符合城市条件的客户都被返回,即使他们没有对应的瓦工工作记录c.clientCity IN (...):精准筛选出指定三个城市的客户- 表别名
c和b:让SQL语句更简洁易读
如果某个客户在Bricklayers表里没有工作记录,查询结果里的jobNum和startDate字段会显示为NULL,完全符合你的需求。
内容的提问来源于stack exchange,提问作者user7724005
相关产品推荐
相关产品推荐

