Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как правильно соединить две таблицы?  [new]
samuraj
Member

Откуда:
Сообщений: 33
Подскажите, есть несколько таблиц и к ним выполняется такой запрос на выборку:

SELECT Кафедра_полн, Бюджет, Дисциплина_сокр, Преподаватель.ФИО, Семестр, Специальность, Группа, Форма, Расчет.*, Расчет.Лекции+Расчет.Семинары+Расчет.Пр_Зан+Расчет.Конс_тек+Расчет.Конс_п_экз+Расчет.Прием_экз+Расчет.Прием_зач+Расчет.ВРК+Расчет.Пр_раб+Расчет.Реценз_реф+Расчет.Рук_конс+Расчет.Рук_дипл+Расчет.Рец_дипл+Расчет.ГАК+Расчет.Рук_практ+Расчет.Рук_кафедрой AS Итог
FROM (((((((Расчет 
INNER JOIN Преподаватель ON Расчет.Преподаватель_id=Преподаватель.id) 
INNER JOIN Группа ON Преподаватель.Группа_id=Группа.id) 
INNER JOIN Форма ON Группа.Форма_id=Форма.id) 
INNER JOIN Специальность ON Группа.Специальность_id=Специальность.id) 
INNER JOIN Семестр ON Преподаватель.Семестр_id=Семестр.id) 
INNER JOIN Дисциплина ON Преподаватель.Дисциплина_id=Дисциплина.id) 
INNER JOIN Кафедра ON Преподаватель.Кафедра_id=Кафедра.id) 
INNER JOIN Бюджет ON Группа.Бюджет_id=Бюджет.id;

К полученной таблице нужно прикрутить справа столбец "Период" из таблицы "Выполнение" так, чтобы "Расчет.id = Выполнение.Расчет_id".

Количество строк должно остаться как в приведённом запросе, т.е. не изменяться. Пробовал через INNER JOIN, кол-во строк удваивается.

Сообщение было отредактировано: 11 авг 09, 10:34
11 авг 09, 06:56    [7520116]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно соединить две таблицы?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
samuraj
...К полученной таблице нужно прикрутить справа столбец "Период" из таблицы "Выполнение" так, чтобы "Расчет.id = Выполнение.Расчет_id".
Количество строк должно остаться как в приведённом запросе, т.е. не изменяться. Пробовал через INNER JOIN, кол-во строк удваивается.
Т.к. скорее всего связь таблица "Расчет" - таблица "Выполнение": один ко многим. Т.е. одной записи Расчет.id соответствует более одной записи Выполнение.Расчет_id. Что ж тут удивительного?
И не показаны какие поля беруться из таблицы "Выполнение".
И синтаксис? Для удобства видения надо указывать из какой таблицы берется поле. И скобки зачем? Или это не T-SQL, а какой-то аналог?
11 авг 09, 07:22    [7520128]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно соединить две таблицы?  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
samuraj
Пробовал через INNER JOIN, кол-во строк удваивается.

если строки задвоены и одинаковы, то поставьте GROUP BY
11 авг 09, 10:32    [7520632]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно соединить две таблицы?  [new]
iljy
Member

Откуда:
Сообщений: 8711
ТАРАКАН
samuraj
Пробовал через INNER JOIN, кол-во строк удваивается.

если строки задвоены и одинаковы, то поставьте GROUP BY


тогда уж проще DISTINCT но вообще - неплохо бы разобраться, откуда такое удвоение.
11 авг 09, 10:40    [7520703]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно соединить две таблицы?  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
о да сорри :) DISTINCT
11 авг 09, 10:45    [7520751]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить