select t.* from table1 t where t.id NOT IN(
select Id from t2 where usrId in
(select usrId from t3 where sId=value));
我需要的结果就好像在t1和t2中有匹配的id,那么这些id应该被省略,只剩下其余的行应该给我。我试图转换成加入,但它给了我想要的结果。以下是我的连接查询。转换为加入查询
SELECT t.* FROM table1 t JOIN table2 t2 ON t.Id <> t2.Id
JOIN table3 t3 ON t3.Id=t2.Id WHERE t3.sId= :value
这并不代表正确的结果。它正在返回所有行,但我想根据表t1和表t2中的匹配id来限制结果。匹配的id应该从结果中忽略。我将传递sId的值。
您使用的是MySQL还是MS SQL Server?不要标记不涉及的产品。 – jarlh
*为什么要重写? – dnoeth
@dnoeth Duh ...让像我们这样的用户可以在我们的SO收件箱中获得闪亮的绿色小点...为什么其他 –