我在桌子下面.
create table test(int id,int data1);
create table test1(int id,int data2);
insert into test values(1,1,);
insert into test1 values(2,2);
insert into test1 values(3,3);
insert into test1 values(1,1);
Run Code Online (Sandbox Code Playgroud)
现在我想要那些不参与加入的测试行.即我想要行(2,2)和(3,3).我想能够在mysql中做到这一点.
我不想因为性能而使用内部查询.
谢谢
SELECT t1.*
FROM TEST1 t1
LEFT JOIN TEST t ON t.id = t1.id
AND t.data1 = t1.data2
WHERE t.id IS NULL
Run Code Online (Sandbox Code Playgroud)
假设列已连接,这是MySQL上最快/最有效的方法.否则,NOT IN/NOT EXISTS是更好的选择.
SELECT t1.*
FROM TEST1 t1
WHERE NOT EXISTS(SELECT NULL
FROM TEST t
WHERE t.id = t1.id
AND t.data1 = t1.data2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1341 次 |
| 最近记录: |