Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Вниз

Помогите создать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
14-2368
Rauf
2004-01-13 01:59
2004.02.02
Есть ли в Дельфи оптимизация кода?


3-1963
Ермек
2004-01-06 02:28
2004.02.02
помогите с FibPlus5.08


6-2257
2ac
2003-11-26 07:31
2004.02.02
Какое событие в TWebBrowser срабатывает при обнаружении ошибки ск


14-2371
DCoder
2004-01-09 13:55
2004.02.02
Какой ЖД быстрей?


1-2066
Nab_OFF
2004-01-20 13:07
2004.02.02
StatusBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский