table: users
+----+-------+
| id | name |
+----+-------+
| 1 | alpha |
| 2 | beta |
| 3 | gamma |
+----+-------+
table: address
+----+---------+------+--------------+
| id | user_id | type | address |
+----+---------+------+--------------+
| 1 | 1 | PRA | welcome |
| 2 | 1 | COA | to the hotel |
| 3 | 2 | PRA | california |
+----+---------+------+--------------+
Я понимаю результат этого запроса:
select u.*, a.*
from ccr.SJ_TEMP_USERS u
LEFT JOIN SJ_TEMP_ADDRESS a
on u.id = a.USER_ID
WHERE a.id IS NULL;
+----+-------+--------+---------+--------+---------+
| ID | NAME | ID_1 | USER_ID | TYPE | ADDRESS |
+----+-------+--------+---------+--------+---------+
| 3 | gamma | (null) | (null) | (null) | (null) |
+----+-------+--------+---------+--------+---------+
Но я не понимаю результат этого запроса.
select u.*, a.*
from ccr.SJ_TEMP_USERS u
LEFT JOIN SJ_TEMP_ADDRESS a
on u.id = a.USER_ID
and a.type = 'COA'
WHERE a.id IS NULL;
+----+-------+--------+---------+--------+---------+
| ID | NAME | ID_1 | USER_ID | TYPE | ADDRESS |
+----+-------+--------+---------+--------+---------+
| 3 | gamma | (null) | (null) | (null) | (null) |
| 2 | beta | (null) | (null) | (null) | (null) |
+----+-------+--------+---------+--------+---------+
Пожалуйста, помогите мне понять, почемуЯ получаю строку с «бета» во втором запросе.(Я использую Oracle SQL Developer).
Обратите внимание, что строка с «альфа» не появляется, если я поставлю условие a.type = 'PRA'
вместо a.type = 'COA'