Главная страница
    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.055 c
15-1215111701
oldman
2008-07-03 23:01
2008.08.24
Новости сегодня меня шокировали...


2-1216372224
programmer90
2008-07-18 13:10
2008.08.24
Как притормозить выполнение след. оператора


3-1204293385
Yurka
2008-02-29 16:56
2008.08.24
Суммирование полей с выбором


15-1215082276
VLK32
2008-07-03 14:51
2008.08.24
Редактор кода в CodeGear RAD 2007


4-1194784856
Niki
2007-11-11 15:40
2008.08.24
LBN_SELCHANGE





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