Ранее я попросил помощи по запросу Oracle, который пытался преобразовать в запрос Postgres:
SELECT c.code, c.recommendation, s.suggested, s.sugg_by, a.approved, a.app_by
FROM (SELECT code, recommendation FROM recommendations) c,
(SELECT code, suggested, sugg_by FROM suggestions) s,
(SELECT code, approved, app_by FROM suggestions) a
WHERE c.code = s.code(+)
AND c.code = a.code(+);
Кто-то рекомендовал это, и он отлично работает:
SELECT
c.code,
c.recommendation,
s.suggested,
s.sugg_by,
a.approved,
a.app_by
FROM recommendations c
LEFT JOIN suggestions s on c.code = s.code
LEFT JOIN suggestions a ON c.code = a.code;
Я забыл упомянуть одну вещь: мне нужно добавить соединение в таблицу USERS, чтобы получить имя пользователя.
sugg_by = u.user_id
app_by = u.user_id
Итак, как-то так:
SELECT c.code, c.recommendation, s.suggested, s.sugg_by, s.full_name, a.approved, a.app_by, a.full_name
FROM (SELECT code, recommendation FROM recommendations) c,
(SELECT code, suggested, sugg_by, full_name FROM suggestions s, users u WHERE s.sugg_by = u.user_id) s,
(SELECT code, approved, app_by, full_name FROM approvals a, users u WHERE a.app_by = u.user_id) a
WHERE c.code = s.code(+)
AND c.code = a.code(+);
В основном мне нужны имена также из таблицы USERS. Достаточно просто в Oracle, просто пытаюсь собрать это вместе для Postgres.