2016-02-09 27 views
2

我有一個表A -phpMyAdmin的MySQL查詢的聯接

SNo  ID  Place 
1  1000 Null 
2  Null Null 
3  1020 CityX 

而另一個表B中 -

ID  Place 
1000 CityY 
2000 CityZ 
4040 CityAA 

現在,我需要連接表A和B,這樣我可以得到的值在表的地方,從表B的所以我最後的表應該是這樣的 -

SNo  ID  Place 
1  1000 CityY 
2  1020 CityX 

我試圖用連接創建一個SQL查詢,但塔噸只給我空行。我沒有 -

Select * from A 
left outer join B 
on A.ID = B.ID 
where A.ID IS NOT NULL 

我的查詢在哪裏打破?我如何得到預期的結果?

+0

我刪除了不相關的標籤;這個問題實際上與PHP或PHPMyAdmin沒有任何關係。請注意,PHPMyAdmin *不是*數據庫;它只是MySQL的用戶界面。 –

+0

是否有這樣一種情況,表B中有一個「ID」不在表「A」中? – radoh

回答

0

看來你需要內部聯接

Select A.ID, ifnull(A.Place, B.Place) from A 
Inner join B 
on A.ID = B.ID 
where A.ID IS NOT NULL 
+0

當地方出現在A中時,我想從A中取出它,如果它不在A中並且在B中可用,我想從B中取出它。 – user3164272

+0

用ifnull – scaisEdge

0
Select A.Sno, A.ID, IF(A.Place is null, B.Place, A.place) as Place from A 
left join B 
on A.ID = B.ID 
where A.ID IS NOT NULL 
0

從技術上講,有什麼不對您的查詢,這裏是你的問題的工作sqlfiddle

http://sqlfiddle.com/#!9/29a002/1/0

既然你沒」 t發佈您的實際模式或截圖,我將懷疑不兼容的列定義或無效數據