具有多个连接和排除的SQL查询

时间:2015-09-09 13:45:01

标签: sql join

我有两个表表A =订单和表B = OrderDetails,它们由唯一的order_no连接。

对于Order TableA中的每个ORDER_no,在OrderDetails TAble B中可以连接多个行。基本上,如果TAble B中的任何行等于特定名称,我需要一个查询来排除两个表中的整个Order。 / p>

示例:

如果订单1234在OrderDetails表B中有5行,其中一行='注意'那么我希望从结果中排除整个ORder 1234。目前它只排除了该行但显示其他行?

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?它获得的订单没有“备注”详细记录:

select o.*
from orders o
where not exists (select 1
                  from orderdetails od
                  where od.orderid = o.orderid and od.name = 'Notes'
                 );

如果您想要所有详细记录,可以在外部查询中加入orderdetails