Я должен выбрать строку, которая имеет один тип значения в одной строке, но не другую, обе строки имеют общую сущность key
Пример модели:
+------+---------+---------------+
| key | status | arrival_p |
+------+---------+---------------+
| k1 | failure | came |
| k1 | success | gone |
| k2 | failure | came |
| k3 | success | came |
| k3 | failure | gone |
| k4 | success | came |
| k5 | success | came |
| k2 | success | gone |
| k6 | success | gone |
+------+---------+---------------+
так что в этом случае, кроме k4
и k5
, все приходили и уходили.Как я могу найти людей, которые пришли, но не ушли?k6
только что ушел, поэтому его выброс, хороший, чтобы поймать его, но не непосредственный приоритет.
Я пробовал ниже запрос, но он не работает (я знаю точное значение в реальной таблице, которая соответствует моему описаниюно приведенный ниже запрос не возвращает значения вообще):
select ap1.`key`
from `arrival_pattern` ap1
left join `arrival_pattern` ap2
on ap1.`key` = ap2.`key`
where ap2.`key` is NULL
and ap1.`arrival_p` = 'came'
and ap2.`arrival_p` = 'gone'
limit 10;
любая помощь или указатели в правильном направлении относительно того, что может быть не так в моем объединении, полезна.я нахожусь на mysql.
TIA:)