Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизКак сделать выборку по главной таблице Найти похожие ветки
← →
}|{yk © (2005-01-26 12:42) [0]и выбрать, есть ли зависимые элементы в подчиненной? На чистом SQL, без процедурных расширений.
← →
Johnmen © (2005-01-26 12:46) [1]Хм... LEFT JOIN что ли ?
← →
stud © (2005-01-26 13:05) [2]может
select main.* from main where main.id in (select detail.id from detail where...)? либо 1
← →
Sergey13 © (2005-01-26 13:13) [3]Те, у которых есть
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)
← →
Val (from Donetsk) (2005-01-26 16:38) [4]>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 16:44) [5]select main.*,count(detal.*)
from main,detail where main.id=detal.m_id
Groub By main.*
Выделенное ессно заменить на список полей
← →
msguns © (2005-01-26 17:09) [6]Select * from main
where id in
(Select distinct mid from detal)
mid - указатель на мастер в детале.
← →
}|{yk © (2005-01-26 17:39) [7]
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
← →
Johnmen © (2005-01-26 17:47) [8]>}|{yk © (26.01.05 17:39) [7]
Тихо сам с собою ?
:)
← →
msguns © (2005-01-26 18:07) [9]>}|{yk © (26.01.05 17:39) [7]
Ну и ?.. Каким образом это решает сабж ? Или подразумевается этот запрос юзать как вложенный для внешнего запроса, где анализируется это поле с кошмарным именем count_detail_temp ?
ИМХО, [6] существенно скромнее ;)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c