2013-07-08 20 views
0

由於過去我曾多次成功完成這項任務,所以我正在嚴重受傷。我在LEFT JOIN的嘗試未產生預期結果。有任何想法嗎?

這一次,它不工作。

我有2個表,表A和tableB的

表A擁有所有的surmons記錄

表B有一些但不是所有surmons。

他們之間的共同關鍵是surmonId。

要求是顯示tableB中存在tableA和tableB匹配但是同時顯示tableA中的所有surmons的惡意。

換句話說,從tableB給我任何存在的記錄和tableA上的所有記錄。

下面的lef join查詢只給我tableB中存在的記錄。

Select distinct l.surmons from tableB b left join tableA a on b.surmonId = a.surmonId. 

只有10 tableB的surmons,這一切我得到。

我在哪裏搞亂了?

感謝很多提前

+3

你應該左側的接合部表B,不表答:您已經讓你的參與逆轉。 –

+1

嘗試使用'... tableA左連接表B b ...' – Scott

回答

3

你的表的任何一個開關順序:

SELECT DISTINCT a.surmons 
FROM tableA a 
LEFT JOIN tableB b 
    ON a.surmonId = b.surmonId 

或使用我的最愛,RIGHT JOIN

SELECT DISTINCT a.surmons 
FROM tableB b 
RIGHT JOIN tableA a 
    ON b.surmonId = a.surmonId 
+0

你實際上並不是說'RIGHT JOIN'是你最喜歡的,對吧? ;-) – Lamak

+1

@拉馬克噢我是的。爲了他人的利益,我並不經常使用他們,但他們就像是因爲晉升而被傳遞過來的同樣能幹的員工,因爲他們有點太不同了。 –

1

如果你想要的一切,從表A,你需要從左邊表A到tableB的加入。

Select distinct a.surmons from tableA a left join tableB b on a.surmonId = b.surmonId 
+0

非常感謝專家。不幸的是,我只能檢查一個複選標記:) –