在关系代数SQL中,如何选择不在另一个表

时间:2016-10-22 23:38:14

标签: mysql sql database relational-algebra

例如,我有两个表,Order和QualifiedOrder

ORDER

Order# | Customer#
------------------
16     |   7

23     |   9 

21     |   2  

59     |   5

QualifiedOrder

QualifiedOrder# | DateApplied
----------------------------- 
23              |  9/10/16

21              | 10/2/15

如何列出不合格的订单? (在关系代数中仅列出订单表中不在QualifiedOrder表中的数据)

1 个答案:

答案 0 :(得分:1)

运行以下命令,请将名称ORDEROrder更改为任何其他名称,因为ORDER是sql的关键字。

SELECT 
    Order 
FROM 
    ORDER 
WHERE 
    Order not IN (
        SELECT 
            QualifiedOrder 
        FROM 
            QualifiedOrder
    )

使用join的另一种方式:

SELECT 
   ORDER.Order
FROM 
   ORDER 
JOIN 
   QualifiedOrder
ON
   ORDER.Order <> QualifiedOrder.QualifiedOrder

并尝试将最后一个查询更改为关系代数。

相关问题