2016-12-14 51 views
1

我在MySQL數據庫的兩個表,這些表是:MySQL的選擇左邊的所有行,並讓空右表

enter image description here

上一個表是jenis_pohon和下一個是jtt

如何在jenis_pohon選擇所有的行,並與jtt與條件加入它jtt.tahun='2016' AND jtt.koperasi_id='4'

我嘗試以下查詢:

SELECT * FROM `jenis_pohon` LEFT JOIN jtt ON jenis_pohon.jenis_pohon_id=jtt.jenis_pohon_id WHERE jtt.tahun='2016' AND jtt.koperasi_id='4' 

但沒有運氣。

basicaly我想返回6行(這6行來自jenis_pohon)。

+0

什麼是您預期的輸出? – Faisal

+1

[this](http://stackoverflow.com/questions/9160991/left-join-with-condition)有幫助嗎? –

+0

@TerryLi awesomeee ......我正在尋找什麼。非常感謝。 –

回答

0

我已經創建了表和測試它,它的工作原理。 使用此查詢:

SELECT * FROM jenis_pohon 
LEFT JOIN jtt ON (jenis_pohon.jenis_pohon_id = jtt.jenis_pohon_id AND jtt.tahun = '2016' AND jtt.koperasi_id = '4') 

注意,使用及內部加入括號使您的查詢玉米粥比使用WHERE更快。

結果是:

enter image description here

您可以按照它想:

SELECT * FROM jenis_pohon 
LEFT JOIN jtt ON (jenis_pohon.jenis_pohon_id = jtt.jenis_pohon_id AND jtt.tahun = '2016' AND jtt.koperasi_id = '4') 
ORDER BY jenis_pohon.jenis_pohon_id 
+0

是的,謝謝你,我已經使用類似於你的查詢來解決它。 –

+0

很高興能夠幫到你。 –

0

嘗試使用以下查詢。

SELECT 
    * 
FROM 
    `jenis_pohon` 
LEFT JOIN jtt ON jenis_pohon.jenis_pohon_id = jtt.jenis_pohon_id 
AND jtt.tahun = '2016' 
AND jtt.koperasi_id = '4'; 

LIVE DEMO

輸出

enter image description here

0

檢查。請在這裏Demo

表JTT與條件jtt.tahun = '2016' AND jtt.koperasi_id = '4' 它只返回3記錄,因爲jtt.koperasi_id = '4' 大街僅3個記錄插入TABEL 'JTT'

與條件onlt jtt.tahun
SELECT * FROM `jenis_pohon` 
LEFT JOIN jtt ON jenis_pohon.jenis_pohon_id=jtt.jenis_pohon_id 
WHERE jtt.tahun='2016' AND jtt.koperasi_id='4'; 

產出表JTT = '2016'

SELECT distinct * FROM `jenis_pohon` 
    LEFT JOIN jtt ON jenis_pohon.jenis_pohon_id=jtt.jenis_pohon_id 
    WHERE jtt.tahun='2016' 
相關問題