我期待從第一個表中獲取所有值以及第二個表中的連接值。使用唯一值的左連接
表1是fee_category與字段:
id | Category
1 | A
2 | B
3 | C
4 | D
表2是fee_charge與字段:
id | std_id | particularID | CategoryID | assign | amount
1 | 1 | 1 | 1 | 0 | 1000
2 | 1 | 1 | 2 | 1 | 12000
3 | 1 | 2 | 3 | 0 | 3000
4 | 1 | 2 | 4 | 0 | 10
5 | 2 | 1 | 2 | 0 | 100
6 | 2 | 2 | 3 | 0 | 120
基表是 「fee_category」 從我需要的所有值留下 「fee_charge」 加入從哪裏我需要值或NULL爲特定std_id和特定ID
SELECT fee_category.id, fee_category.Category, fee_charge.std_id
, fee_charge.particularID, fee_charge.CategoryID, fee_charge.assign, fee_charge.amount FROM fee_category
LEFT join fee_charge on fee_category.id=fee_charge.CategoryID
where (fee_charge.std_id = 1 OR fee_charge.std_id IS NULL)
AND (fee_charge.particularID = 1 OR fee_charge.particularID IS NULL)
group By fee_category.id
order By fee_charge.assign DESC
這裏我一個試圖讓std_id的所有類別= 1和particularID = 1
正確的結果應該是
id | Category | std_id | particularID | CategoryID | assign | amount
1 | A | 1 | 1 | 1 | 0 | 1000
1 | B | 1 | 1 | 2 | 1 | 12000
1 | C | 1 | NULL | NULL | NULL | NULL
1 | D | 1 | NULL | NULL | NULL | NULL
我想上面查詢的各種版本,但沒有得到正確的結果。請幫助
有這裏有一些錯誤。讓我們從GROUP BY開始,它沒有位置在沒有聚合函數的查詢中。 – Strawberry
有沒有sqlfiddle? – Strawberry
下面是這個sqlfiddle:http://sqlfiddle.com/#!9/5ea334/3 – Ash