我有一个正在运行的以下查询(以及两个名为topic和topic_dataitem_relation的表):
SELECT * FROM omid.topic as t
WHERE t.ID NOT IN (
SELECT tdr.TopicID FROM omid.topic_dataitem_relation As tdr
WHERE tdr.DataitemID = 37
);
但是我想在使用加入时无法达到相同的结果:
SELECT distinct *
FROM omid.topic as t
left join omid.topic_dataitem_relation As tdr
ON t.ID != tdr.TopicID
WHERE tdr.DataitemID = 37;
如果有可能加入,有人可以帮助我吗?(提前感谢)
最佳答案
JOIN也是一个条件,因此要应用其他条件,必须使用AND,而
您的查询将是:
SELECT *
FROM omid.topic as t
JOIN omid.topic_dataitem_relation As tdr
ON t.ID != tdr.TopicID
AND tdr.DataitemID = 37; /* Your WHERE BECOME AND */
/* AND condition2 = value 2*/
/* AND ..... */
关于mysql - 内部联接而不是内部选择效果不佳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23808807/