仅当表不为空时,SQL查询才会进行连接

时间:2017-09-12 07:06:45

标签: sql join

我想要实现的是我有一个表A和表B他们都使用相同的ID,但是A中的一些ID在B中不存在,因此如果我正在寻找那个特定的ID并且有加入我没有得到任何东西。

我的查询就像这样

        SELECT *
        FROM table_A A
        LEFT JOIN table_B B
        ON A.id = B.id
        WHERE B.condition <> "X"
        AND A.id = "Y"

如果我选择A和B中存在的ID并且它有效,但是如果它只存在于A中,那么即使该行不在表B中,我怎么能得到结果?

1 个答案:

答案 0 :(得分:2)

将table_B条件移至ON子句,以获得LEFT JOIN结果,而不是INNER JOIN结果。

SELECT *
FROM table_A A
LEFT JOIN table_B B
  ON A.id = B.id
 AND B.condition <> "X"
WHERE A.id = "Y"