我有两张这样的表
tblMaster
---------
id title
---------
1 a
2 b
3 c
4 d
tblDetail
---------
dId mId
---------
100 1
100 2
100 4
101 1
101 3
102 2
102 3
我加入他们并使用此查询从tblMaster中查找没有详细项目ID的项目(1,4)
SELECT m.id, m.title FROM tblMaster m
INNER JOINT tblDetail d on d.mId=m.id
WHERE m.id NOT IN (SELECT d2.mId FROM tblDetail d2 WHERE d2.dId IN (1,4))
GROUP BY m.id, m.title
我有很多桌子,我想像我提到的那样过滤它们。是否有更简单的方法或一般方式来做所有事情?
也......性能也很重要! 如果在Yii Activerecord中有解决方案,那就没关系了。
答案 0 :(得分:1)
使用外部联接加入:
SELECT m.id, m.title FROM tblMaster m
LEFT OUTER JOIN tblDetail d on d.mId=m.id
WHERE d.dId is null