簡體   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