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

Вниз

Помогите создать SQL-запрос, заменяющий индексы   Найти похожие ветки 

 
sergg ©   (2004-01-08 22:14) [0]

Уважаемые мастера!
Существует таблица 1, описывающая определенные
события с объектами описанными в таблице 2.
В таблице 1, в поле "Объект" хранятся значения
из поля счетчика таблицы 2, однозначно определяющие
объект (типа идентификатор :)).
При запросе скажет SELECT * FROM таблица 1
в поле "Объект" оказываются конечно же циферки -
идентификаторы (1,2,3...)
Можно ли сформулировать такой SQL-запрос, чтобы
на выходе получить вместо этих циферок любое
поле из таблицы 2 - например название объекта???
А то приходится делать массивы и заниматься
заменой программно :(((


 
Mike_Goblin ©   (2004-01-09 08:33) [1]

RTFM joins
inner join
left outer join etc

Вариант 1
select t2.* from table1 t1
inner join table2 t2 on
t1.table2Id = t2.Id

Вариант 2
select t2.* from table1 t1, table2 t2
where t2.Id = t1.table2Id

Заранее прошу прощения за ошибки, очень хочется спать


 
sergg ©   (2004-01-09 15:37) [2]

Спасибо, все работает :)
Кроме случая, когда в Таблице 1 ДВА разных поля
ссылаются на ОДНУ таблицу, присоединяемую
через inner join :)


 
Johnmen ©   (2004-01-09 15:41) [3]

left(right) join


 
Desdechado ©   (2004-01-09 15:41) [4]

справочник пиши тогда 2 раза в запросе
select t.cod1, s1.name, t.cod2, s2.name
from TBL t, Sprav s1, Sprav s2
where t.cod1 = s1.cod AND t.cod2 = s2.cod


 
sergg ©   (2004-01-09 16:43) [5]

Глупый вопрос: а что должно быть вместо Sprav?


 
sergg ©   (2004-01-09 16:54) [6]

При использовании LEFT JOIN и RIGHT JOIN
в результате все равно получаются все
возможные комбинации полей,
как если бы было два INNER JOINA"a
или я чего-то не догоняю :(?


 
sniknik ©   (2004-01-09 17:01) [7]

Операция LEFT JOIN используется для создания левого внешнего объединения. Левое внешнее объединение включает все записи из первой (левой) таблицы, даже если нет совпадающих значений для записей из второй (правой) таблицы.

Операция RIGHT JOIN используется для создания правого внешнего объединения. Правое внешнее объединение включает все записи из второй (правой) таблицы, даже если нет совпадающих значений с записями из первой (левой) таблицы.


 
Desdechado ©   (2004-01-09 18:11) [8]

Sprav - это тот справочник (таблица), на которую ссылаются 2 поля в таблице tbl


 
sergg ©   (2004-01-09 23:43) [9]

Спасибо, попробуем :)



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
1-2126
zamkom
2004-01-19 17:07
2004.02.02
Поиск текста в файле


1-2186
TUser
2004-01-17 19:08
2004.02.02
Как назначить диску свою иконку


3-1950
Dmitriy
2004-01-05 15:16
2004.02.02
глючит


14-2378
Driverrr
2004-01-09 18:20
2004.02.02
Нужен исходник...


1-2219
Grinder
2004-01-20 00:35
2004.02.02
DaysBetween аналог