【问题标题】:subtraction from multiple tables - sql [duplicate]从多个表中减去 - sql [重复]
【发布时间】:2018-06-13 16:32:27
【问题描述】:

我正在围绕 SQL 查询做一些练习。我试图实现所有尚未订购的项目(partno)。这是下图

我试图实现的是零件表中零件号的完整列表减去 OrderedItems 表中的零件号。我相信我需要做一个左外连接。

喜欢下面

SELECT *
FROM PARTS, ORDEREDITEMS
LEFT OUTER JOIN ordereditems.Partno - parts.Partno;

还是有点卡在这个上面,这是正确的方向吗?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    select * 
    from parts 
    where partno not in ( select partno from ordereditems)
    

    只需选择不在其他表中的所有内容。

    select * 
    from parts 
    where not exists ( select 1 from ordereditems where partno = parts.partno) 
    

    将是另一种方式。

    【讨论】:

    • 谢谢,辛苦了!
    【解决方案2】:
    select Parts.*
    from Parts left join Ordereditem
    on Parts.partno = Ordereditem.partno
    where Ordereditem.partno is null
    

    【讨论】:

    • 我们有一个赢家,伙计们
    【解决方案3】:

    试试这个

    select a.partno - b.partno from
    (select * from PARTS) as a
    left JOIN
    (select * from ORDEREDITEMS) as b
    on a.Partno = b.Partno
    

    【讨论】:

    • 您可以使用a.fields and b.fields添加其他字段
    • 这里重要的是你知道每个表的外键和主键,比如a.id = b.id
    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 2022-12-08
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多