Я создаю представление, объединяющее две таблицы с некоторыми похожими полями и некоторыми разнородными полями.У меня этот 95% работает, но есть одно поле из таблицы A, которое совпадает с полем из таблицы B, но только если вы используете это поле из B в качестве соединения для извлечения поля из таблицы C. Единственная часть кода нижеэто не работает, это JOIN.Я мог бы просто вставить оба поля и выполнить логику для получения provider_id
из ehruser_id
в модели, но я чувствую, что это должно быть выполнимо в SQL, и у меня просто нет знаний, чтобы получить этопоследний бит еще работает
DROP VIEW IF EXISTS vunifiedschedule CASCADE;
CREATE VIEW vunifiedschedule AS
SELECT
schedule_block.id as vid,
schedule_block.reason as vblock_reason,
NULL as vappointment_reason_id,
schedule_block.when_ts as vwhen,
schedule_block.deleted_ts as vdeleted_when,
schedule_block.placeofservice_id as vlocation_id,
schedule_block.duration as vduration,
true as vappointment_book,
schedule_block.note as vnote
FROM schedule_block
LEFT JOIN ( SELECT id FROM provider) as vprovider_id ON provider.ehruser_id = schedule_block.ehruser_id
UNION ALL
SELECT
appointment.id AS vid,
NULL as vblock_reason,
appointment.appointmentreason_id AS vappointment_reason_id,
appointment.appt_when AS vwhen,
appointment.deleted_when AS vdeleted_when,
appointment.location_id AS vlocation_id,
appointment.visit_length AS vduration,
appointment.appointment_book as vappointment_book,
appointment.note AS vnote,
appointment.provider_id as vprovider_id
FROM appointment
Я получаю ошибку ERROR: missing FROM-clause entry for table "provider"
LINE 14: ...ELECT id FROM provider) as vprovider_id ON provider.e...