![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать выборку по главной таблице
}|{yk © (2005-01-26 12:42:00)и выбрать, есть ли зависимые элементы в подчиненной? На чистом SQL, без процедурных расширений.
msguns (2005-01-26 18:07:00) [1]>}|{yk © (26.01.05 17:39) [7]
Ну и ?.. Каким образом это решает сабж ? Или подразумевается этот запрос юзать как вложенный для внешнего запроса, где анализируется это поле с кошмарным именем count_detail_temp ?
ИМХО, [6] существенно скромнее ;)
Johnmen (2005-01-26 17:47:00) [2]>}|{yk © (26.01.05 17:39) [7]
Тихо сам с собою ?
:)
}|{yk (2005-01-26 17:39:00) [3]
SELECT plat_id, COUNT (bank_id) count_detail_temp
FROM (SELECT app_plateg.plat_id, app_bank_temp.rowid bank_id
FROM app_plateg, app_bank_temp
WHERE app_plateg.plat_id = app_bank_temp.plat_id(+))
GROUP BY plat_id
msguns (2005-01-26 17:09:00) [4]Select * from main
where id in
(Select distinct mid from detal)
mid - указатель на мастер в детале.
Sergey13 (2005-01-26 16:44:00) [5]select main.*,count(detal.*)
from main,detail where main.id=detal.m_id
Groub By main.*
Выделенное ессно заменить на список полей
Val (from Donetsk) (2005-01-26 16:38:00) [6]>Johnmen © (26.01.05 12:46) [1]
не всякий Oracle возьмет :)
>Sergey13 © (26.01.05 13:13) [3]
судя по вопросу, все же внешнее объединение нужно, как сказал Johnmen © (26.01.05 12:46), ведь он выбирает, не "если", а "есть ли" ;)
Sergey13 (2005-01-26 13:13:00) [7]Те, у которых есть
select main.* from main
where exists (select * from detail where main.id=detal.m_id)
Те, у которых нет
select main.* from main
where not exists (select * from detail where main.id=detal.m_id)
stud (2005-01-26 13:05:00) [8]может
select main.* from main where main.id in (select detail.id from detail where...)? либо 1
Johnmen (2005-01-26 12:46:00) [9]Хм... LEFT JOIN что ли ?