|
|
|
Связка по условию
|
|||
|---|---|---|---|
|
#18+
Вот такая проблема: Нужно связать две таблицы: SHTAT (id,fio) и NADBAV(id,id_shat,id_nadbav,summa) NADBAV.ID ЭТО ID в SHTAT Вот так нельзя: select s.* from SHAT s, NADBAV n where s.id=n.id_shtat т.к. не выбираются те записи из SHTAT id которых нет в NADBAV. Вот так тоже нельзя: select s.*, (select n.ID_NADBAV from NADBAV n where s.id = n.id_shtat) KOD_NADB, (select n.SUMMA from NADBAV n where s.id = n.id_shtat) SUM_NADB from SHTAT т.к. для одной записи в SHTAT могут быть несколько записей в NADBAV - получается "подзапрос одиночной строки возвращает более одной строки". И как народ у себя решает подобные проблемы? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2003, 09:29 |
|
||
|
Связка по условию
|
|||
|---|---|---|---|
|
#18+
Вроде тебе вот это надо... лефт джоин называется... select s.* from SHAT s, NADBAV n where s.id = n.id_shtat (+); В результат попадут строки из SHAT для которых нет строк в NADBAV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2003, 10:02 |
|
||
|
Связка по условию
|
|||
|---|---|---|---|
|
#18+
А внешнее соединение использовать влом что-ли? Код: plaintext 1. 2. 3. 4. 5. 6. 7. Только непонятно в чём смысл обьединения, если из n никакие поля не берутся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2003, 10:03 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32125361&tid=1991351]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 483ms |

| 0 / 0 |
