Вложенное объединение таблиц PostgreSQL

У меня есть 4 таблицы - A, B, C, D. Я хочу объединить таблицы B с D, и C с D перед тем, как объединить таблицы A, B, C. Как мне это сделать с помощью подзапроса?

CREATE OR REPLACE FUNCTION get_product_info(name)
RETURNS TABLE(id INT, product_name TEXT, price INT, quantity INT, 
              release_date DATE, supplier_name TEXT, 
              producer_name TEXT) AS
$$
BEGIN
    RETURN QUERY(
        SELECT fishing_products.id, fishing_products.name AS product_name, 
        fishing_products.price, fishing_products.quantity,
        fishing_products.release_date, suppliers.name AS supplier_name,
        producers.name AS producer_name
        FROM fishing_products
        JOIN (SELECT * 
              FROM suppliers
              JOIN countries ON suppliers.country_id = countries.id) 
        ON fishing_products.supplier_id = suppliers.id
        JOIN (SELECT * 
              FROM producers
              JOIN countries ON producers.country_id = countries.id)  
        ON fishing_products.producer_id = producers.id
    );
END;
$$
LANGUAGE PLPGSQL;

Ответы (0 шт):