回答

收藏

SQL语句允许所有客户无订单

技术问答 技术问答 241 人阅读 | 0 人回复 | 2023-09-14

我有一个典型的Persons表和一个Orders表的定义使我能够遵循以下方法JOIN查询以返回所有Persons的Orders。
" x$ |% m: u# w7 @0 |SELECT Persons.LastName,Persons.FirstName,Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.id=Orders.Person_id问题是,我应该如何写一个句子来返回所有没有订单的人?* w$ G2 h! z2 b0 P7 V3 o* T3 l
我正在使用mysql。
+ r2 r2 t: k' B! ~+ m" |$ ^* e提前谢谢。& A( u" [* A- ]( Q$ X
                                                                ' ~2 M, a; {. Y3 I* B, H% O' `3 C
    解决方案:                                                               
* D. t, e, Q- T* \3 z                                                                可能要用LEFT JOIN和IS NULL:
0 v/ k- S: c- P3 h0 p( qSELECT     Persons.LastName,Persons.FirstNameFROM       PersonsLEFT JOIN  Orders ON Persons.id = Orders.Person_idWHERE      Orders.Person_id IS NULL;左连接的结果总是包含左表(人员)的所有记录,即使在右表(订单)中找不到任何匹配的记录。如果没有匹配项,右表中的列将NULL出现在结果集中。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则