2013-08-19 113 views
0

我有2个表。来自两个具有相同ID字段的表的查询

表A - 2柱(ID,类A)和表B中 - 2柱(ID,类B)

我有找出A类和B类是否是下面两个表中相同。如果它改变,那么我必须显示更改的记录作为id,A类,B类格式

但是我不能得到正确的结果,当同一个id有2个或更多的类。尝试了很多,但无法获得req输出。

表A:

id   class A  
1    10    
1    20    
3    50    
4    60 

表B:

id   class B  
1    20    
1    30    
3    50    
4    60 

要求输出地说:

id  Class A  Class B 
1   10   30 

回答

0

我想这会做到这一点:

SELECT * FROM A, B WHERE A.CLASSA NOT IN (SELECT CLASSA FROM A, B 
WHERE CLASSA = CLASSB) AND CLASSB NOT IN (SELECT CLASSA FROM A, B 
WHERE CLASSA = CLASSB) 

SQL小提琴:http://sqlfiddle.com/#!3/f9a42/10

+0

这个工作,但让你有两个索引这样PRIMARY KEY(CLASSA,ID)和PRIMARY KEY(CLASSB,ID)或本查询将运行6全表扫描,这是不好.. –

+0

是啊谢谢:)将退房DIS –

0

我认为这会做:

Select A.id,A.classA,B.classB from A inner join B 
    on A.id=B.id 
    where A.classA!=B.classB 
+0

给出三个结果.. –

+0

是啊只有一个结果应该来.. –

相关问题