嗨,我被困在查询中,我有一个像这样的表
budget_details
id budget_id expenditure_head_id budget
1 1 1 1233
2 1 2 333
3 1 3 567
4 2 1 343
5 2 2 343
6 2 3 6767
7 2 4 557
expenditure_heads
id name
1 abc
2 xyz
3 qwe
4 uvw
我想从budget_details那里得到所有的支出 如果不在budget_details中,则budget_id = 1不包含expenditure_head_id 4 但我想选择0或null显示
我试过这个,但它没有显示expense_head_id 4
select `expenditure_heads`.`name`, `budget_details`.`budget`, `budget_details`.`id` from
`budget_details`
right join `expenditure_heads` on `budget_details`.`expenditure_head_id` = `expenditure_heads`.`id`
where `budget_details`.`budget_id` = 1"
请帮助
答案 0 :(得分:1)
where
可以避免您获得所需的缺失行。左连接在ON
语句上完成,因此此查询应该适合您:
SELECT EH.name, BD.budget, BD.id FROM expenditure_heads EH
LEFT JOIN budget_details BD
ON (BD.expenditure_head_id = EH.id AND BD.budget_id = 1)