SQL查询仅在表不为空时执行联接
我想要实现的是,我有一个表a和表B,它们都使用相同的ID,但a中的一些ID在B中不存在,因此,如果我正在寻找特定的ID并有一个连接,我不会得到任何东西 我的问题是这样的SQL查询仅在表不为空时执行联接,sql,join,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 左联接
SELECT *
FROM table_A A
LEFT JOIN table_B B
ON A.id = B.id
WHERE B.condition <> "X"
AND A.id = "Y"
选择*
从表A
左联接表
在A.id=B.id上
其中B.条件“X”
和A.id=“Y”
如果我选择了A和B中都存在的and ID,它就可以工作,但如果它只存在于A中,它就不能工作,那么即使行不在表B中,我如何才能得到结果呢?将表B条件移动到
ON
子句中,以获得左连接
结果,而不是内部连接
结果
SELECT *
FROM table_A A
LEFT JOIN table_B B
ON A.id = B.id
AND B.condition <> "X"
WHERE A.id = "Y"
选择*
从表A
左联接表
在A.id=B.id上
和B.条件“X”
其中A.id=“Y”
另请注意:在SQL中,字符串文字应该用单引号括起来(例如,'Y'
)。谢谢,这正是我所需要的。