我有两张桌子,一张叫做订单,另一张是发票。我想知道我是否有没有发票的已结账单。他们加入了id_order,所以我有这个。
select I.ID_Order,O.ID_order from Invoices I
inner join Orders O on o.ID_Order = I.ID_Order
where o.Status='x'
如果在发票中找到o.iD_order,则表示订单已开票。 如果在发票中找不到o.id_order,则表示未开发票。
我想在select语句中输入所有未开票的订单。
答案 0 :(得分:0)
方法一:
select *
From Order
Where ID_Order not in (Select ID_Order from Invoices)
方法2:
select O.*
from Orders O
Left join
Invoices I
on o.ID_Order = I.ID_Order
where I.ID_Order IS NULL
方法3:
select *
From Order as O
Where Not Exists (Select ID_Order from Invoices as I Where I.ID_Order = O.ID_Order)
坚持第一个,通常表现更好。