根据其他表过滤表记录

时间:2019-06-12 08:43:17

标签: mysql sql

我有一个表“ all_data”,其中包含2条记录

a) Independent records which should get fetched all times 
b) All records from table "all_product"

现在我还有更多的桌子,例如     “ MS_product”,“ apple_product”,“ Linux_product”以及所有这些表都是表“ all_product”的子集。

我已经使用过左联接或右联接,但是看起来没用。

我想从表'all_data'中获取所有独立记录,而仅从其他表中获取匹配的记录,即'ms_product',因此最终输出应为     所有独立记录+“ MS_product”,“ apple_product”或“ Linux_product”表中的匹配记录。

1 个答案:

答案 0 :(得分:0)

您可以对第一个查询使用MINUS运算符:

SELECT *
FROM all_records

MINUS

(
    SELECT *
    FROM MS_product

    UNION

    SELECT *
    FROM Apple_product
)

它将为您提供所有不在MS_product和Apple_product表中的元组。

但是,我不建议像您一样设计数据库。最好选择一个带有专用列的品牌产品表。