我期待从第一个表中获取所有值以及第二个表中的连接值。使用唯一值的左连接
表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