Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как можно сделать такой хитрый запрос....... очень важно..... / 3 сообщений из 3, страница 1 из 1
14.03.2004, 00:45
    #32441005
discretus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно сделать такой хитрый запрос....... очень важно.....
Допустим есть две таблицы.
CREATE TABLE "DEPARTMENTS_TAB"
(
"DEPARTMENT_ID" "SMALLID",
"DEPARTMENT_NAME" VARCHAR(30) CHARACTER SET WIN1251,
PRIMARY KEY ("DEPARTMENT_ID")
);

CREATE TABLE "EXPENCES_TAB"
(
"EXPENCES_ID" "SMALLID",
"EXPENCES_SENDER_ID" "SMALLID",
"EXPENCES_RECIPIENT_ID" "SMALLID",
PRIMARY KEY ("EXPENCES_ID")
);
ALTER TABLE "EXPENCES_TAB" ADD FOREIGN KEY ("EXPENCES_SENDER_ID") REFERENCES DEPARTMENTS_TAB ("DEPARTMENT_ID");
ALTER TABLE "EXPENCES_TAB" ADD FOREIGN KEY ("EXPENCES_RECIPIENT_ID") REFERENCES DEPARTMENTS_TAB ("DEPARTMENT_ID");

Задача заключается в том, чтобы сформировать набор данных из EXPENCES_TAB следующего вида: EXPENCES_ID, EXPENCES_SENDER(NAME), EXPENCES_RECIPIENT(NAME).

Если бы там был только один внешний ключ, то было бы все совсем иначе....
Не подумайте, что я совсем SQL не знаю, но все же я пока не понял как такое вывести, хотя уверен, что это должно быть очень просто....
...
Рейтинг: 0 / 0
14.03.2004, 01:44
    #32441016
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно сделать такой хитрый запрос....... очень важно.....
Причем здесь наличие FK ключей ? Правильно. Непричем...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT  
  A.EXPENCES_ID AS ID, 
  B.DEPARTMENT_NAME AS NAME1, 
  C.DEPARTMENT_NAME AS NAME2
FROM EXPENCES_TAB A
JOIN DEPARTMENTS_TAB B ON A.DEPARTMENT_ID=B.EXPENCES_SENDER_ID
JOIN DEPARTMENTS_TAB C ON A.DEPARTMENT_ID=C.EXPENCES_RECIPIENT_ID


Ну или там LEFT(RIGHT) JOIN по обстоятельствам...

...
Рейтинг: 0 / 0
14.03.2004, 10:42
    #32441059
discretus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно сделать такой хитрый запрос....... очень важно.....
Спасибо большое :) Теперь буду знать...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как можно сделать такой хитрый запрос....... очень важно..... / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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