首页 文章

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

提问于
浏览
0

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

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

例:

如果订单1234在OrderDetails TableB中有5行,其中一行='NOTE',那么我希望从结果中排除整个ORder 1234 . 目前它只排除那行但显示其他行?

1 回答

  • 1

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

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

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

相关问题