Mysql - 内部联接 - 获取非关联结果

时间:2016-06-28 21:30:34

标签: mysql sql inner-join

我需要进行查询。 例如,我有产品和子产品。子产品可以与产品相关联,因此我需要一个查询,以便向我提供与某个产品无关的子产品的结果。 我做了一个内部联接,但是不对。

SELECT * 
FROM subProducts 
    INNER JOIN products on subProducts.id != products.idSubProduct 
WHERE products.id = $idProduct

感谢的

1 个答案:

答案 0 :(得分:1)

使用outer join代替null支票:

SELECT * 
FROM subProducts 
     LEFT JOIN products on subProducts.id = products.idSubProduct 
         AND products.id = $idProduct
WHERE products.id IS NULL

还有其他方法可以执行此操作 - not innot exists可以类似地工作。这是使用not exists

SELECT *
FROM subProducts s
WHERE NOT EXISTS (
    SELECT 1
    FROM products p
    WHERE p.idSubProduct = s.id AND p.id = $idProduct
    )