Как объединить 2 таблицы, что бы что условие по второй было не обязательное?
Помогите построить запрос.
Вот таблицы:
Attr
| code | user_code | attr_code | attr_value |
|---|---|---|---|
| 1 | 24 | 8 | 1 |
| 2 | 24 | 4 | 1 |
| 3 | 24 | 3 | 1 |
| 4 | 24 | 2 | 1 |
Users
| code | name |
|---|---|
| 24 | Bolodya |
Этот запрос
select * from Users join Attr on Users.code = Attr.user_code
where Users.code = 24 and Attr.attr_code = 8;
выдаст искомую строку только если в таблице attr есть запись с attr_code = 8 и user_code = 24. Мне же нужно, чтобы поля из таблицы Users выводились в любом случае, а поля из Attr только если есть запись с attr_code = 8(если таковой нет - на месте этих полей будет просто пустота).
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Используйте left join и в условие объединения таблиц добавьте Attr.attr_code = 8
select * from Users
LEFT join Attr on Users.code = Attr.user_code and Attr.attr_code = 8
where Users.code = 24;