老实说,我甚至不确定我是否正确地表达了这一点。我内心加入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)
任何帮助都会很棒!
答案 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
正是您所寻找的。 p>