我有两个表,即X和Y。我必须通过比较X.id的id(不等于Y.id)来获取X表的记录? 当“Y 表”有与“X”匹配的记录时,它工作正常。如果 Y 表中没有记录(即空或空值),则 X 也返回 null...
我该如何处理这个 null 并获取 X 表记录?
SELECT X.id,
X.company_Id
FROM X,Y
WHERE X.status_Id = 9
AND X.active=1
AND X.company_Id IN (SELECT Company_Id
FROM Z
WHERE user_Id =1
AND association_Id=1)
AND X.id <> Y.id
请帮我找到解决方案。
最佳答案
SELECT
X.id,
X.company_Id
FROM
x
LEFT JOIN y /*<<<<<<<<<<<*/
WHERE
X.status_Id = 9
AND X.active = 1
AND X.company_Id IN (
SELECT
Company_Id
FROM
Z
WHERE
user_Id = 1
AND
association_Id = 1)
AND X.id <> Y.id
通过使用左连接,您可以获得 X 中的所有行,甚至包括 x.id 与 Y.id 不匹配的行,然后 where 子句消除 X.id = Y.id 的行
关于mysql - Mysql中如何通过比较两个表返回记录,即使其中一个表为空或为空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31116499/