结合EXISTS和LEFT JOIN

时间:2015-12-29 13:33:29

标签: mysql sql-server join left-join exists

我需要一些帮助,结合我写的两个查询(我不知道是否可以这样做)。但首先让我告诉你桌子和exaplin它所以这里没有模棱两可的角度。

这是我的表格(PS:我不知道如何在StackOverflow中制作体面的表格,即使我研究了它,并尝试使用Senseful解决方案,请原谅图像):

Main Table

我的第一个查询如下:

SELECT *
FROM Dropship As t1
WHERE t1.HUB_SO_GOODS_ISSUE_DATE IS NULL 
AND EXISTS (SELECT * FROM Dropship t2
WHERE t2.LE_PO = t1.LE_PO
AND t2.HUB_SO_GOODS_ISSUE_DATE IS NOT NULL);

此查询为我提供了尚未完全处理的所有订单。所以我用它给了我订单(LE_PO)300和500,如下图所示:

result from first query

我使用的另一个查询是左连接:

SELECT Dropship.*, Notes_Replenishment.*
FROM Dropship LEFT JOIN Notes_Replenishment ON Dropship.LE_PO = Notes_Replenishment.LE_PO;

notes_replenishment表包含所有订单(LE_PO),但也包含用户输入的注释。我想要做的是将左连接合并到第一个查询中,以便它给出结果(见上文),但也提供了Notes_replenishment表中的注释,但是当我自己尝试这样做时出现错误。

有人可以给我一些关于如何组合这两个查询的指示吗?

提前谢谢大家!

1 个答案:

答案 0 :(得分:2)

SELECT  *
FROM    Dropship As t1
LEFT JOIN 
        Notes_Replenishment
ON      t1.LE_PO = Notes_Replenishment.LE_PO
WHERE   t1.HUB_SO_GOODS_ISSUE_DATE IS NULL 
        AND EXISTS 
        (
        SELECT  *
        FROM    Dropship t2
        WHERE   t2.LE_PO = t1.LE_PO
                AND t2.HUB_SO_GOODS_ISSUE_DATE IS NOT NULL
        )