Мне нужно запросить таблицу RELATIONS (ГДЕ между двумя датами) и получить ENTITY_ID, связанный с каждой парой SOURCE / ACCOUNT в таблице RELATIONS.
- ENTITIES table
ENTITY_ID (PK)
ENTITY_NAME
- ACCOUNTS table
SOURCE (PK)
ACCOUNT (PK)
ENTITY_ID (FK)
- RELATIONS table
RELATION_ID (PK)
SOURCE_1 (FK)
ACCOUNT_1 (FK)
SOURCE_2 (FK)
ACCOUNT_2 (FK)
TIMESTAMP
Есть ли способ сделать это в одном запросе?
Вывод запроса должен выглядеть следующим образом:
RELATION_ID
SOURCE_1
ACCOUNT_1
ENTITY_ID_1 (ENTITY_ID (from ACCOUNTS table) related to SOURCE_1 and ACCOUNT_1)
SOURCE_2
ACCOUNT_2
ENTITY_ID_2 (ENTITY_ID (from ACCOUNTS table) related to SOURCE_2 and ACCOUNT_2)
У меня есть идея, какполучить ENTITY_ID_1, но не уверен, как получить ENTITY_ID_2 одновременно.
SELECT
R.RELATION_ID
,R.SOURCE_1
,R.ACCOUNT_1
,A.ENTITY_ID AS ENTITY_ID_1
,R.SOURCE_2
,R.ACCOUNT_2
FROM RELATIONS R
JOIN ACCOUNTS A
ON R.SOURCE_1 = A.SOURCE
AND R.ACCOUNT_1 = A.ACCOUNT
WHERE R.TIMESTAMP >= DATETIME1 AND R.TIMESTAMP < DATETIME2
Любые мысли о лучшем названии этого вопроса приветствуются.