![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выборка из 2 таблиц [D6, DBISAM]
webpauk © (2008-03-03 13:32:00)есть 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)
проблема в том, что такой запрос выдает записи, связанные ВСЕ ко ВСЕМ.
может кто подскажет как правильнее организовать запрос
Johnmen (2008-03-03 15:03:00) [1]
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")
Sergey13 (2008-03-03 13:36:00) [2]> [0] webpauk © (03.03.08 13:32)
> в которой есть указатель на одну из таблиц
В смысле? На кокую то конкретную таблицу или на любую из первых двух.
Кстати, зачем 2 таблицы одинаковой структуры?