![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка LokUp-полей [D5, IB5.x, IB6.x]
User_OKA © (2003-02-06 09:12:00)В общем, с самого начала.
Существют таблицы - справочники:
X (поля: ID, Sprav);
Y (поля: ID, Sprav);
Z (поля: ID, Sprav),
а также таблица A (поля: ID, ID_X, ID_Y, ID_Z).
Пользователю нужно представить все это в одной таблице, чтобы вместо кодов значений высветились сами значения.
Делаю запрос:
"SELECT A.ID, X.Sprav, Y.Sprav, Z.Sprav
FROM A A, X X, Y Y, Z Z
WHERE A.ID_X = X.ID AND A.ID_Y = Y.ID AND A.ID_Z = Z.ID"
Сортировку можно проводить по любому полю, но если в таблице A не заполнено какое-либо поле (имеется ввиду ID_X, ID_Y или ID_Z), то строка не попадает в итоговый запрос и пользователь ее не увидит.
Выход в использовании lookup - полей.
Но как провести по ним сортировку?
Пишу "ORDER BY A.ID_Y", но сами значения справочника для пользователя все равно остаются неотсортированными.
Что делать?
User_OKA (2003-02-06 09:33:00) [21]Запрос с JOIN долго выполняется.
Особенно если в таблицах > 1000 записей.
Ксати, с lookup-полями запрос выполняется быстрее, чем с запросом WHERE.
AlexSerp (2003-02-06 09:25:00) [22]Пробовал так?
SELECT A.ID, X.Sprav, Y.Sprav, Z.Sprav
FROM A
left join x on A.ID_X = X.ID
left join y on A.ID_X = y.ID
left join z on A.ID_X = z.ID