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

Вниз

Выборка из 2 таблиц   Найти похожие ветки 

 
webpauk ©   (2008-03-03 13:32) [0]

есть 2 таблицы (T1, T2) одинаковой структуры:
CREATE TABLE T... (ID INTEGER, Name CHAR(50))
и есть таблица (T3), в которой есть указатель на одну из таблиц:
CREATE TABLE T3 (ID INTEGER, NameTable CHAR(2), ID_T1T2 INTEGER)

соответственно нужно получить T1(T2).ID, T1(T2).Name AS Name в зависимости от NameTable.

запрос выглядит так:
SELECT
IF(T3.NameTable="T1" THEN T1.ID ELSE T2.ID) AS ID,
IF(T3.NameTable="T1" THEN T1.Name ELSE T2.Name) AS NAME
FROM T3, T2, T1
WHERE
(T3.ID_T1T2=T1.ID) AND (T3.ID_T1T2=T2.ID)


проблема в том, что такой запрос выдает записи, связанные ВСЕ ко ВСЕМ.
может кто подскажет как правильнее организовать запрос


 
Sergey13 ©   (2008-03-03 13:36) [1]

> [0] webpauk ©   (03.03.08 13:32)
> в которой есть указатель на одну из таблиц

В смысле? На кокую то конкретную таблицу или на любую из первых двух.

Кстати, зачем 2 таблицы одинаковой структуры?


 
Johnmen ©   (2008-03-03 15:03) [2]

SELECT T1.ID AS ID, T1.Name AS NAME
FROM T3, T1
WHERE (T3.ID_T1T2=T1.ID) AND (T3.NameTable="T1")
UNION
SELECT T2.ID AS ID, T2.Name AS NAME
FROM T3, T2
WHERE (T3.ID_T1T2=T2.ID) AND (T3.NameTable="T2")



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

Форум: "Базы";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.047 c
15-1215588950
Azize
2008-07-09 11:35
2008.08.24
Создан 100% российский компьютер уровня Pentium III


15-1215422732
Nic
2008-07-07 13:25
2008.08.24
Лучшая программа управления лотком оптического привода


8-1184700559
Layner
2007-07-17 23:29
2008.08.24
Ищу "удобный холст" для рисования векторными фигурами


3-1204294921
pirks
2008-02-29 17:22
2008.08.24
Перевернуть таблицу


15-1215492465
homm
2008-07-08 08:47
2008.08.24
Интеграция .reg-файла в реестр





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский