powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как можно сделать такой хитрый запрос....... очень важно.....
3 сообщений из 3, страница 1 из 1
Как можно сделать такой хитрый запрос....... очень важно.....
    #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
Как можно сделать такой хитрый запрос....... очень важно.....
    #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
Как можно сделать такой хитрый запрос....... очень важно.....
    #32441059
discretus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое :) Теперь буду знать...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как можно сделать такой хитрый запрос....... очень важно.....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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