Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать выборку по главной таблице


}|{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 что ли ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо