LINUX.ORG.RU

Почему не срабатывает join exist

 ,


1

1

Делаю выборку такую,что в таблице C джоинится один ко многим - ищу среди них такие у которых date2<date1, но при этом если в том же отношении кокрас джоинится несколько строк, но если среди них если существуют такие строки где date2>date1 - то все эти строки отбрасываются, но то ли я не прав, то ли чего то не учел выборка не правильная получается

select A.a,B.date1,C.date2 from A
join B on B.id=A.id
join C c1 on C.date2<B.date1 and C.c=B.b and 
not exist(select id from C c2 where c1.id<>c2.id and c1.c=B.b and c2.date2>B.date1)

+-----+------------+------------+
| a   | date1      | date2      |
+-----+------------+------------+
| 123 | 21.08.2024 | пусто      |
| 456 | 15.08.2024 | 18.08.2024 |
| 789 | 29.07.2024 | пусто      |
|     |            |            |
|     |            |            |
|     |            |            |
|     |            |            |
|     |            |            |
+-----+------------+------------+

1я и 3я строки не должны же выводится?



Последнее исправление: bad_master (всего исправлений: 6)