Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Запрос данных из 3-х таблиц


Автор: WhiteSpirit 3.8.2006, 10:06
Подскажите плиз, как составить простейший запрос на следующую выборку:

Примерные таблицы:

табл.1 'Name'
id 
name
type_id
...

табл.2 'Type'
id
type
...

табл.3 'Oper'
id
name_id
sum
...

В результате запроса хотелось бы получить следующую таблицу:
...
name
type
sum
...

Запрос:

Код

select type, name from Name N, Type T, Oper O where  O.name_id=N.id and N.type_id=T.id 

в результатет выводится таблица где в поле type значения только первой записи по всем строкам

Автор: skyboy 3.8.2006, 10:48
Код

SELECT t.type,n.name,o.sum
FROM Oper o
INNER JOIN Name n
ON o.name_id=n.id
INNER JOIN Type t
ON n.type_id=t.id

Это?

Автор: WhiteSpirit 3.8.2006, 11:21
типа того, но более верный:

Код

SELECT Name.name, Type.type, Oper.sum
FROM Oper INNER JOIN (Name INNER JOIN Type ON Name.type_id = Type.id) ON Oper.name_id = Name.id;


получил запрос путем конструктора в аксессе.

Работать то он работает только вот смысл его я не очень понимаю. 
Может ли кто нибудь пояснить или дать ссылочку?

Заранее благодарен

Автор: bas 3.8.2006, 11:57
Цитата(WhiteSpirit @  3.8.2006,  11:21 Найти цитируемый пост)
Может ли кто нибудь пояснить или дать ссылочку?

А в спавке Accessa не пробовал прочитать 
Справочик по языку Microsoft Jet SQL- Справочик  Microsoft Jet SQL- Язык обработки данных (DML) - Операция INNER JOIN, Операции LEFT JOIN, RIGHT JOIN

Цитата

Операцию INNER JOIN можно использовать в любом предложении FROM. Это самые обычные типы связывания. Они объединяют записи двух таблиц, если связующие поля обеих таблиц содержат одинаковые значения.

Автор: skyboy 3.8.2006, 14:44
WhiteSpirit, в след. раз размещай вопрос в соответствии с СУБД. Я-то тебе ответил в соответствии с синтаксисом MySQL... 

Автор: WhiteSpirit 3.8.2006, 16:44
если честно то мне вообще этот запрос нужен для IBase и там подходит формат MySQL "+"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)