|
|
|
Коварная связь Один-Ко-Многим
|
|||
|---|---|---|---|
|
#18+
В "главной" таблице - фамилии. Во второй - документы, идентиф. личность. У одного человека может быть несколько документов. Один из них - паспорт. Паспорта может и не быть. Задача: вывести ВСЕ фамилии. А если у кого паспорт есть - то и номер паспорта. Сделал запрос с левым связыванием. В WHERE ограничил документы только паспортами. Пропали люди без паспортов. А они нужны. HELP please! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 16:55:24 |
|
||
|
Коварная связь Один-Ко-Многим
|
|||
|---|---|---|---|
|
#18+
Вариант 1. Строим второй такой же селект, только с условием IsNull(праваятаблица.ключ). Он вернет только людей без паспортов. Присоединяем его к первому через union. Вариант 2. Строим селект, который возвращает подмножество правой таблицы - только паспорта. Пользуемся им вместо правой таблицы. Условие про только паспорта убираем - оно уже использовано. Вариант 3 (наилучший, но я не уверен, что получится). В условии добавляем: or IsNull(праваятаблица.ключ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 17:10:18 |
|
||
|
Коварная связь Один-Ко-Многим
|
|||
|---|---|---|---|
|
#18+
А можно поподробнее о структуре таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 17:18:44 |
|
||
|
Коварная связь Один-Ко-Многим
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял условие то надо использовать вариант2 от В.С Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2003, 17:35:52 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32219065&tid=1680284]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 491ms |

| 0 / 0 |
