繁体   English   中英

mysql选择left中的所有行,并在右表中设置null

[英]mysql select all rows in left and let null in right table

我在MySql数据库中有两个表,表是:

在此输入图像描述

上面一个表是jenis_pohon ,下面一个表是jtt

如何选择jenis_pohon所有行并使用条件jtt.tahun='2016' AND jtt.koperasi_id='4'将其与jtt连接

我尝试了以下查询:

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'

但没有运气。

基本上我想要返回6行(这6行来自jenis_pohon )。

尝试使用下面的查询。

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';

现场演示

OUTPUT

在此输入图像描述

检查一下。 点击这里演示

表jtt与条件jtt.tahun ='2016'和jtt.koperasi_id ='4'它只返回3条记录,因为jtt.koperasi_id ='4'ave只有3条记录进入tabel'jtt'

 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';

O表jtt,状态为onlt jtt.tahun ='2016'

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

我已经创建了你的表并对其进行了测试,它确实有效。 使用此查询:

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')

请注意,在连接括号内使用AND会使查询比使用WHERE更快。

结果是:

在此输入图像描述

你可以这样排序:

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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM