Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / SQL с нескольких таблиц / 8 сообщений из 8, страница 1 из 1
02.04.2004, 10:13
    #32466548
inc
inc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
Есть таблица А и подчиненная таблица В. Одной записи а А соответствует некое множество записей в В. Нужно зделать выборку с таблицы А, причем чтобы в результате были как значения полей из А, так и сумма по определенному полю всех подчиненных записей из В.
Подскажите как написать такой SQL.
...
Рейтинг: 0 / 0
02.04.2004, 10:21
    #32466558
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
Поможет объединение+sum+group by

Это - самые азы, и автору вопроса самое время почитать книжки по SQL. Причем на этом этапе даже неважно, какие именно.
...
Рейтинг: 0 / 0
05.04.2004, 11:51
    #32468777
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
Ну тут вроде два варианта:
Код: plaintext
1.
 1 ) select A.*,(select sum(B.summa) from B where B.RowID=A.RowID) from  A

Код: plaintext
1.
2.
3.
4.
5.
select A.*,C.* from A,
   (select B.RowID,sum(B.summa) from B group by B.RowID) as C
where 
   C.RowID=A.RowID

...
Рейтинг: 0 / 0
05.04.2004, 17:09
    #32469494
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
Второй вариант не во всех СУБД работает.
...
Рейтинг: 0 / 0
05.04.2004, 17:28
    #32469521
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
select A.*, sum(B.summa)
from A, B
where
A.RowID=B.RowID
group by A.RowID
...
Рейтинг: 0 / 0
05.04.2004, 19:30
    #32469687
inc
inc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
Да тут дело вот в чем было, сначала я сделал что-то типа варианта 1), который предложил gardenman , но получилось очень тормозно(база не мелкая), вот и решил спросить варианты, а про group by не подумал. Когда сделал через group by - скорость возросла, причем раз в 20-30.
Интересно из-за чего так ?
И вообще дает ли группировка прирост в скорости выполнения запроса?
...
Рейтинг: 0 / 0
16.04.2004, 16:03
    #32484613
Kwicia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
Групування дає хороший результат, тому що при використанні вкладених запитів, вкалдений запит виконується стільки разів, скільки є записів в головній таблиці. А при використанні групування - виконується тільки один запит.

Kwicia
...
Рейтинг: 0 / 0
17.04.2004, 04:59
    #32485208
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL с нескольких таблиц
Kwicia, это же SQL.RU :), на всякий случай переведу:

Группировка дает хороший результат, так как при выполнение вложенных
запросов, вложенный запрос выполняется столько раз, сколько записей
у главной таблицы. А при выполнении группировки - выполняется только
один запрос.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / SQL с нескольких таблиц / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]