我在桌子下面.
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 次  |  
        
|   最近记录:  |