mysql内连接与null选择结果?

时间:2014-02-06 23:41:40

标签: mysql

老实说,我甚至不确定我是否正确地表达了这一点。我内心加入3个表,第三个我需要检查是否没有匹配某个id的条目。这是我到目前为止的地方:

SELECT a.*
FROM tableA a
INNER JOIN tableB b
ON a.userID = b.userID
WHERE b.status=1 AND
IS NULL (SELECT c.* FROM tableC c WHERE c.userID=a.userID c.otherID=3)

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:0)

怎么样:

SELECT a.* FROM tableA a
INNER JOIN tableB b ON a.userID = b.userID
INNER JOIN tableC c ON c.userID=a.userID and c.otherID!=3
WHERE b.status=1 

答案 1 :(得分:0)

我想你想要:

SELECT a.*
FROM tableA a INNER JOIN
     tableB b
     ON a.userID = b.userID
WHERE b.status=1 AND
      not exists (SELECT 1 FROM tableC c WHERE c.userID = a.userID and c.otherID = 3)

(select * . . . )的子查询不正确。 is null(之后应该是)期待标量值。要使子查询返回标量值,它需要返回一行和一列。

此外,where子句需要两个条件之间的连接。我做了and

无论如何,not exists正是您所寻找的。