2013-08-19 142 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

是啊只有一個結果應該來.. –

相關問題