Я пытаюсь создать запрос, который может предоставить мне желаемый результат, используя следующие 3 таблицы:
Table_A
|-----------|--------|
| scui | text |
| 1002 | abc |
| 1002 | def |
| 1002 | ghi |
|-----------|--------|
Table_B
|------------|-----------|
| scui | cui |
| 1002 | c002 |
| 1003 | c003 |
| 1004 | c004 |
|------------|-----------|
Table_ C
|-----------|------------|------------|
| cui | text | scui |
| c002 | 123 | |
| c002 | 456 | |
| c002 | abc | 1002 |
|-----------|------------|------------|
Желаемый результат
|------------|------------|
| scui | text |
| 1002 | abc |
| 1002 | def |
| 1002 | ghi |
| 1002 | 123 |
| 1002 | 456 |
|------------|------------|
Я пробовал несколько вариантов, например, используя Join
для соединения всех трех таблиц, но с помощью Join
я не возможность использовать Group By для определенного c Join
. Я создал следующий запрос:
SELECT DISTINCT a.scui, c.cui, a.text FROM Table_A a
JOIN
Table_B b ON (a.scui = b.scui)
JOIN
Table_C c ON (b.cui = c.cui)
GROUP BY a.scui;
После долгих размышлений я подумал, что могу также использовать Table_A
и Table_C
и выполнить SELF JOIN
, но не уверен, что это будет правильный вариант.