Sql 选择没有外键或外键不足的主键
我想获得所有没有外键或没有足够号码的充电id,作为对电源的确认 比如说,Sql 选择没有外键或外键不足的主键,sql,sqlite,join,Sql,Sqlite,Join,我想获得所有没有外键或没有足够号码的充电id,作为对电源的确认 比如说, Charge Table: id confirmation_to_supply Pay Table: id charge_id 让我们重视一下 Charge Table: id: 1 confirmation_to_supply: 1 id: 2 confirmation_to_supply: 2 id: 3 confirmation_to_supply: 3 Pay Table: id: 1
Charge Table:
id
confirmation_to_supply
Pay Table:
id
charge_id
让我们重视一下
Charge Table:
id: 1 confirmation_to_supply: 1
id: 2 confirmation_to_supply: 2
id: 3 confirmation_to_supply: 3
Pay Table:
id: 1 charge_id: 2
id: 2 charge_id: 2
id: 3 charge_id: 3
结果应该是
charge_id
-----------
1
3
所以应该出现1,因为pay表中没有这样的外键
3应该出现,因为在充电表中没有足够的外键作为对电源的确认
我的问题与此非常相似:
此查询只提供空值
charge_id
-----------
1
我还需要身份证3
Thank's您可以使用group by和having子句执行此操作:
您可以使用GROUPBY和having子句执行此操作:
如果在WHERE语句中添加OR,该语句显示外键数小于2的键,该怎么办
select char.id
from Charge AS char
left outer join Pay AS p on p.charge_id = char.id
where p.charge_id is null OR (SELECT COUNT(p.charge_id) FROM Pay) < 2
如果在WHERE语句中添加OR,该语句显示外键数小于2的键,该怎么办
select char.id
from Charge AS char
left outer join Pay AS p on p.charge_id = char.id
where p.charge_id is null OR (SELECT COUNT(p.charge_id) FROM Pay) < 2
非常感谢您的快速回答!非常感谢您的快速回答!
select char.id
from Charge AS char
left outer join Pay AS p on p.charge_id = char.id
where p.charge_id is null OR (SELECT COUNT(p.charge_id) FROM Pay) < 2