|
|
|
Исключить результаты из запроса
|
|||
|---|---|---|---|
|
#18+
Есть две таблицы, связанные между собой по полю ID. В первой таблице каждая строка - клиент с уникальным ID и его данные. Во второй - оформленные договоры с уникальным номером договора Dog_id, в котором в поле ID отвечает за клиента, на которого этот договор оформлен. Также строка содержит бинарное поле Dolg (1 - задолженность по договору, 0 - договор закрыт) и поле Date, хранящее срок, до которого договор должен быть закрыт. По данным из второй таблицы ,используя DISTINCT, насколько я понимаю, для фильтрации договоров для одного ID-клиента, мне нужно отобрать клиентов, у которых вообще нет открытых договоров (Dolg=0), либо договор еще не просрочен (Dolg=1, Date<= CURRENT_DATE), и потом по ID объединить JOIN'ом объединить с первой таблицы, чтобы получить данные этих клиентов для последующей работы с ними. Простой SELECT с двумя этими условиями по OR не проходит: для одного клиента с одним ID во второй таблице может содержаться, к примеру, три записи, две из которых для прошлых уже погашенных договоров с Dolg=0, а третья - текущая с просрочкой по договору. И именно по первым двум он попадет в результаты запроса. Каким образом из результатов запроса можно ИСКЛЮЧИТЬ результаты другого запроса. Спасибо заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 21:01:59 |
|
||
|
Исключить результаты из запроса
|
|||
|---|---|---|---|
|
#18+
Warrenмне нужно отобрать клиентов, у которых вообще нет открытых договоров (Dolg=0), либо договор еще не просрочен (Dolg=1, Date<= CURRENT_DATE), и потом по ID объединить JOIN'ом объединить с первой таблицы, чтобы получить данные этих клиентов для последующей работы с ними. Изучай формальную логику. Тебе нужны клиенты, у которых не существует (not exists) просроченных договоров. Всё. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 21:27:57 |
|
||
|
Исключить результаты из запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Большое спасибо. С логикой проблем, вроде бы, нет, а о существовании EXIST не знал, погуглил, буду пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 21:55:48 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=108&tid=1564089]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 364ms |

| 0 / 0 |
