2016-12-14 26 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' 
相关问题