Главная страница
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.029 c
14-2292
Senator
2004-01-12 16:29
2004.02.02
фича


14-2361
Marser
2004-01-07 23:23
2004.02.02
Х/ф


4-2430
Bers
2003-11-24 11:14
2004.02.02
Разница в написании - доступ к Реестру.


6-2240
Кен
2003-11-27 07:40
2004.02.02
Как определить можно ли перейти на предыдущую страницу в Браузере


3-2043
Niker
2004-01-05 17:49
2004.02.02
Как осуществить быстрый поиск с неплным запросом по БД?