2016-05-17 99 views
0

我在蜂房兩個表:

表1:蜂巢聯接查詢

1,Nail,maher,24,6.2 
2,finn,egan,23,5.9 
3,Hadm,Sha,28,6.0 
4,bob,hope,55,7.2 

表2:

1,Nail,maher,24,6.2 
2,finn,egan,23,5.9 
3,Hadm,Sha,28,6.0 
4,bob,hope,55,7.2 
5,john,hill,22,5.5 
6,todger,hommy,11,2.2 
7,jim,cnt,99,9.9 
8,will,hats,43,11.2 

是否有蜂巢任何方法來檢索表2中的新數據表1中不存在?

在其他數據庫工具中,您可以使用內部左/右。但內部左/右不存在蜂巢和建議如何實現?

回答

1

如果您使用的蜂巢版本> = 0.13,您可以使用此查詢:

SELECT * FROM A WHERE A.firstname, A.lastname ... IN (SELECT B.firstname, B.lastname ... FROM B); 

但我不知道,如果蜂巢支持IN子句中的多個coloumns。 如果沒有這樣的事情可以工作:

SELECT * FROM A WHERE A.firstname IN (SELECT B.firstname FROM B) AND A.lastname IN (SELECT b.lastname FROM B) ...; 
+0

這工作完美,我所要做的就是使用**而不是**。 供參考:第一個沒有工作,但第二個沒有。 非常感謝 –

+0

感謝您的信息 – ZeusNet

0

這可能是明智的測試不之前來串聯領域一起:NOT

SELECT * 
FROM t2 
WHERE CONCAT(t2.firstname, t2.lastname, CAST(t2.val1 as STRING), CAST(t2.val2 as STRING)) NOT IN 
    (SELECT CONCAT(t2.firstname, t2.lastname, CAST(t2.val1 as STRING), CAST(t2.val2 as STRING)) 
    FROM t1) 

執行順序IN子查詢可能給你錯誤的結果。

從以上示例中,具有值('nail','egan',28,7.2)的新記錄不會在順序NOT IN語句中顯示爲新的記錄。