Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сортировка в зависимости от данных в другой таблице / 5 сообщений из 5, страница 1 из 1
26.01.2007, 17:22
    #34286297
Yurman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка в зависимости от данных в другой таблице
Существует таблица ProfList - список всех возможных специальностей, имеющая 1 поле varchar
prof(специальность).
И таблица ProfListCat имеющая 2 поля varchar prof и category(образование, медицина и тд).
В одну таблицу не стал объединять т.к. запись в таблице ProfListCat есть для меньшей части
специальностей ProfList.
Возможно ли сделать запрос, который выведет ProfLIst отсортированный таким образом, что
сначала будут записи которые есть в ProfListCat, а потом которые в ProfListCat отсутствуют.
Тоесть сначала идут записи, которые есть и в другой таблице, а потом которые в другой таблице
отсутствуют.
Написал такой запрос:

SELECT
PL_A.PROF
FROM
PROFLIST PL_A
WHERE EXISTS(SELECT PLC_A.PROF FROM PROFLISTCAT PLC_A
WHERE PL_A.PROF=PLC_A.PROF)
UNION ALL
SELECT
PL_B.PROF
FROM
PROFLIST PL_B
WHERE NOT EXISTS(SELECT PLC_B.PROF FROM PROFLISTCAT PLC_B
WHERE PL_B.PROF=PLC_B.PROF)

Работает, но нет сортировки по специальности, если добавить в конце ORDER BY 1, сортирутеся
полностью и специальности смешиваются, а надо: первый запрос от а до я и второй от а до я
...
Рейтинг: 0 / 0
26.01.2007, 17:24
    #34286310
гм...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка в зависимости от данных в другой таблице
в 1 селект добавь поле 1
в 2 2 ?
...
Рейтинг: 0 / 0
26.01.2007, 19:02
    #34286592
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка в зависимости от данных в другой таблице
1. Открой для себя внешнее соединение.

2. Открой для себя NULL. "В одну таблицу не стал объединять т.к. запись в таблице ProfListCat есть для меньшей части специальностей ProfList." - Старомодный трюк. Имеет смысл для БД организованных в виде прямоугольных таблиц, типа dbf и т.п.. Современные СУБД не выделяют место под пустые поля.
...
Рейтинг: 0 / 0
26.01.2007, 20:16
    #34286736
Yurman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка в зависимости от данных в другой таблице
в 1 селект добавь поле 1
в 2 2 ?

Я извиняюсь, но чтото не понял. Можно поподробнее.
...
Рейтинг: 0 / 0
26.01.2007, 22:57
    #34286904
Yurman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка в зависимости от данных в другой таблице
Подсказали в теме Interbase:
select PL.PROF,
case when EXISTS(SELECT PLC.PROF FROM PROFLISTCAT PLC
WHERE PL.PROF=PLC.PROF) then 0 else 1 end
from PROFLIST PL
order by 2
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сортировка в зависимости от данных в другой таблице / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]