MYSQL
父表
customer
C_Id
First
Last
子表
付款
P_Id
Paid (logical)
C_Id
所有客户记录在付款表中都没有子记录。
想要检索除付款表where pay = True
中包含子记录的客户记录以外的所有客户记录。付费逻辑字段中的数据可能为True,False或NULL
因此,记录的结果集将排除已经支付的任何客户。
Left Join
给了我这个:
1 Harry Houdini
2 Johnny Bench
3 Clark Gable Null
4 John Galt False
5 Nick Cage True
6 Casey Cason
期望的结果是
1 Harry Houdini
2 Johnny Bench
3 Clark Gable Null
4 John Galt False
6 Casey Cason
此记录不符合条件,因此从查询中排除
5 Nick Cage True
答案 0 :(得分:0)
试试这个
select * from customer c
join payment p
on c.c_id = p.c_id where pay = 'false' or pay is NULL;
您无法使用left join
获得这些输出,因为使用左连接可以获得整个表格。您可以使用inner join