两张桌子:
表1fax_history

fax_key
1001
1002

表2>fax_history_status
fax_key     Status
1001        NEW
1001        SUCCESS
1002        NEW

现在我需要编写一个join query记录,它只返回fax_key=1002记录,因为fax_key=1001fax_history_status表中有多个记录。
所以查询结果应该是:
fax_key     status
1002        NEW

最佳答案

您可以使用having筛选行。

select a.fax_key
from  fax_history a
inner  join  fax_history_status  b on  a.fax_key  = b.fax_key
 group by a.fax_key
 having count(*) =1

对于状态,可以使用(假)聚合函数,例如:
select a.fax_key , min(b.status)
from  fax_history a
inner  join  fax_history_status  b on  a.fax_key  = b.fax_key
 group by a.fax_key
 having count(*) =1

关于sql - 如果LEFT JOIN表记录数大于1,则排除行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45499619/

10-14 14:57
查看更多