![]() |
1
144
我可能会使用左联接,它将返回行,即使没有匹配,然后您可以通过检查空值仅选择没有匹配的行。 所以,有点像:
这是否比使用子查询效率高或低取决于优化、索引、每个投票人是否可以有多个排除等。 |
![]() |
2
4
我会用一个“不存在的地方”——正如你在标题中建议的那样:
这可能比执行左联接(当然,这取决于您的索引、表的基数等)快得多,而且几乎可以肯定 许多的 比在中使用更快。 |
![]() |
3
3
有三种可能的方法可以做到这一点。
SELECT lt.* FROM table_left lt LEFT JOIN table_right rt ON rt.value = lt.value WHERE rt.value IS NULL
SELECT lt.* FROM table_left lt WHERE lt.value NOT IN ( SELECT value FROM table_right rt )
SELECT lt.* FROM table_left lt WHERE NOT EXISTS ( SELECT NULL FROM table_right rt WHERE rt.value = lt.value ) |
![]() |
M S · 显示加入两个表的所有可用视频 2 年前 |
![]() |
neeh · 为每个父记录选择具有条件的子记录数[重复] 3 年前 |
![]() |
J. Krajewski · 如何计算具有给定成员的组的行数? 3 年前 |
![]() |
VickyBoy · 我试图用3个以上的表构建一个查询,其中数据分散在 3 年前 |
![]() |
newGuy101 · 如何将SQL子查询转换为Join子句? 3 年前 |
![]() |
user18797786 · Fuzzy Wuzzy和另一列的条件 3 年前 |
![]() |
Python learner Shaavin · 在解码过程中保留空间 3 年前 |
![]() |
Marvin · 在MySQL视图中左键连接 3 年前 |