Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: CL | DM;

Вниз

Можно ли сделать такую выборку одним SQL-запросом?   Найти похожие ветки 

 
sergg ©   (2004-01-08 10:37) [0]

Уважаемые мастера, подскажите пожалуйста, можно ли сделать следующую выборку одним SQL-запросом:
1) Есть таблица 1 содержащая типы объектов - скажет тип "А" и тип "Б", состоящая из собственно названия типа (А и Б) и счетчика (индексного поля ?? :-) )
2)Есть таблица 2 самих объектов, где в поле "тип объекта" указывается номер записи из таблицы 1 :-)
3)И есть таблица 3 событий, происходивших с объектами, где в поле "Объект" тоже указывается номер записи (ну в смысле значения индесного поля типа счетчик) из таблицы 2.

Как можно сделать выборку всех событий, происходивших с объектами типа А?
В книжке по SQL ничего похожего я не нашел :(


 
DCoder ©   (2004-01-08 11:08) [1]

select table3.events
from table3
inner join table1 on table1.object_index=table3.object_index
where table1.object_name="A" /*можно использовать параметр*/

где events - события
Вторая таблица, как я понял, тут вообще не используется


 
sergg ©   (2004-01-08 13:52) [2]

Почему?? Используется:
В записях табл 3 указываются идентификаторы из табл 2 (объекты)
а в записях табл 2, в свою очередь, указываются идентификаторы из табл 1 (типы объектов)


 
DCoder ©   (2004-01-08 16:14) [3]

select table3.id, table3.events
from table3
inner join table2 on table2.id=table3.id_t2
inner join table1 on table1.id=table2.id_t1
where table1.object_name="A"


 
sergg ©   (2004-01-08 16:50) [4]

Спасибо. Сейчас почитаем что ето за джойн такой :)))


 
div   (2004-01-08 19:15) [5]

какие join"ы?

select * from table3
where
table1.objecy_name = "A" and
table2.id_t1 = table1.id and
table3.id_t2 = table2.id_t1


 
sergg ©   (2004-01-08 22:17) [6]

Хмм, join"ы работают, спасибо DCoder, а этим путем разве лучше?


 
sergg ©   (2004-01-08 22:34) [7]

При попытке включить в запрос
ссылку на другую таблицу, например
table2.id_t1 выдается ошибка:
Invalid field name
id_t1
:((


 
sergg ©   (2004-01-08 23:17) [8]

Должно быть так :)

select * from table3,table2,table1
where
table1.objecy_name = "A" and
table2.id_t1 = table1.id and
table3.id_t2 = table2.id_t1



Страницы: 1 вся ветка

Текущий архив: 2004.02.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-2108
Marina_S
2004-01-19 21:39
2004.02.02
Как запустить исходник?


4-2407
Lin7
2003-11-23 20:08
2004.02.02
Выравнивание иконок на рабочем столе под XP


1-2136
msgipss
2004-01-18 17:48
2004.02.02
Добавить архив в ресурсы программы


1-2197
snake1977
2004-01-20 15:09
2004.02.02
TDataBase в DLL


1-2069
Sirus
2004-01-21 06:10
2004.02.02
Панель типа TaskBar в WinXP....