力扣刷题,查找不在表中数据!两种思路,两种方法

力扣刷题,查找不在表中数据!两种思路,两种方法_第1张图片
【思路1】
不订购任何东西的顾客,orders表中数据为空即可
两表中内容不一定相同,所以使用外联结
最后输出的结果是姓名,所以要求name表中的内容不能少所以选用left join

SELECT Name.C 
FROM custormers AS C LEFT JOIN Orders AS O
ON C.Id=O.Id
WHERE Customerid is null

力扣刷题,查找不在表中数据!两种思路,两种方法_第2张图片

【思路2】
不在表中的数据使用 NOT IN
只要用户的id 不出现在customerid那一列即可
【步骤】
新建一个表筛选custerid

SELECT custerid
FROM orders

使用子查询拼合两者

SELECT Name AS 'Customers'
FROM customers AS C
WHERE C.Id not inSELECT custerid
                    FROM orders)

力扣刷题,查找不在表中数据!两种思路,两种方法_第3张图片

你可能感兴趣的:(sql查询基础,mysql刷题,力扣网)