|
|
|
нужен опримальный запрос на выборку из связ. таблиц..
|
|||
|---|---|---|---|
|
#18+
select family.name , count(*) from family inner join familymember f1 on ( family.ID = f1.familyID ) inner join familymember f2 on ( family.ID = f2.familyID ) inner join familymember f3 on ( family.ID = f3.familyID ) where f1.memberid = 1 and f2.memberid = 2 and f3.memberid = 3 group by family.name Получаем все семьи где есть хотя бы один папа, хотя бы одна мама, хотя бы одна сестра. Если нужны семьи без лишних пап, мам и сестер, потом фильтруем по count=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2003, 18:24 |
|
||
|
нужен опримальный запрос на выборку из связ. таблиц..
|
|||
|---|---|---|---|
|
#18+
to 1 Все правильно. Но что делать если надо будет найти 4,5.... членов семьи? Каждый раз переписывать запрос заново? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2003, 19:02 |
|
||
|
нужен опримальный запрос на выборку из связ. таблиц..
|
|||
|---|---|---|---|
|
#18+
я писал : Мне нужен запрос- вывести все семьи которые содержат одновременно папа,мама,сестра Я нашёл 2 решения 1) при помощи EXISTS 2) создание копий таблицы тСвязка, поиск в каждой копии по одному члену семьи и связка таблиц по ключу семьи...... Правильно ли я понял, что предложение 1, guest является модификацией моего решения 2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 10:29 |
|
||
|
нужен опримальный запрос на выборку из связ. таблиц..
|
|||
|---|---|---|---|
|
#18+
Правильно, только одним запросом :) Ну и конечно решение не универсальное, никто и не говорил. Я кстати думаю, что по скорости оно будет оптимальным, во всяком случае при трех таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 17:45 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32334656&tid=1678001]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 363ms |

| 0 / 0 |
