2016-04-30 2 views
1

Привет Я застрял в запросе я есть таблица, как этоMysql Регистрация выберите запись из таблицы с не в другой таблице

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 

Я хочу получить все расходы_heads from budget_details, которые даже , если нет т в budget_details как здесь budget_id = 1 не содержит expenditure_head_id 4 , но я хочу, чтобы выбрать, что с 0 или нуль отображения

я попытался это, но он не показывает expenditure_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" 

пожалуйста, помогите

ответ

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) 
+0

Да, где именно избегается недостающая строка. этот запрос работал отлично благодаря – sanu

+0

Если ответ исправить вашу проблему, отметьте его как ответ. Он может помочь другим пользователям. благодаря – olibiaz

Смежные вопросы