Главная страница
    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.043 c
2-1216129529
ЗФдЗФднсп
2008-07-15 17:45
2008.08.24
Освобождение .xls файла


6-1192557976
Rembo
2007-10-16 22:06
2008.08.24
TIdIcmpClient количество посланных байт


15-1215534864
Dreamse
2008-07-08 20:34
2008.08.24
Компиляция драйвера на Delphi


15-1215110556
oldman
2008-07-03 22:42
2008.08.24
Нужен контроллер EGA!


2-1216717555
Vlad Oshin
2008-07-22 13:05
2008.08.24
то работает, то не работает. Не объясните почему?





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