数据库每日一题 --- 第 4 天:从不订购的客户
一、问题描述
某网站包含两个表,Customers
表和 Orders
表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。
题目链接:从不订购的客户
二、题目要求
样例
复制代码
考察
复制代码
三、问题分析
1.子查询
这一题两个表的 Id 其实是不一样的,含义也不同。而Customers 表
中的Id
与Orders 表
中的 CustomerId
含义是相同的。
所以,这一题的思路就变得很清晰了。我们只需要找出在Customers 表
出现的Id
却没有在Orders 表
中的 CustomerId
中出现过就行。
2.左连接
左连接就是优先输出左表的所有记录,而只返回右表与对应的条件相等的数据,以这题为例,左连接的结果应该是:
复制代码
如上表所示,左侧的数据全部输出而右表只输出符合条件的结果,我们只需要通过 Id 号将两个表连接起来,然后判断右侧的 Id 号是否为空就行了。
附录:
右连接
右连接和左连接一样,输出全部的右表数据却只输出符合条件的左表数据,不符合条件置为空。
内连接
匹配两个表中同时符合条件的数据
四、编码实现
1.子查询
复制代码
2.左连接
复制代码
五、测试结果
版权声明: 本文为 InfoQ 作者【知心宝贝】的原创文章。
原文链接:【http://xie.infoq.cn/article/296a9e8b0049bc8d6bc4b499b】。文章转载请联系作者。
评论