SQL语句让所有客户无需订单

前端之家收集整理的这篇文章主要介绍了SQL语句让所有客户无需订单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个典型的Persons表和一个Orders表,定义如下,我可以执行JOIN查询作为以下命令返回所有人的命令.
SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.id=Orders.Person_id

问题是,如何撰写一份可以退还所有没有订单的人的声明?

我正在使用MysqL.

提前感谢.

解决方法

您可能需要使用LEFT JOIN和IS NULL:
SELECT     Persons.LastName,Persons.FirstName
FROM       Persons
LEFT JOIN  Orders ON Persons.id = Orders.Person_id
WHERE      Orders.Person_id IS NULL;

左连接的结果总是包含“左”表(Persons)的所有记录,即使连接条件在“右”表(Orders)中找不到任何匹配记录.当没有匹配时,“right”表的列在结果集中将为NULL.

猜你在找的MsSQL相关文章