I cannot join tables setup, p and sps. I only want to join the row from sps with the newest timestamp in the created_at column.
I tried this answer: https://stackoverflow.com/a/45018194/6535278 Without any success like so:
SELECT *
FROM setup s
JOIN (SELECT p_id AS p_id_1,
p_setup_id AS p_setup_id_1
FROM part
) p
ON s.s_id = p.p_setup_id_1
JOIN (SELECT DISTINCT ON (s_p_s_id) s_p_s_id AS s_p_s_id_1,
part_id AS part_id_1,
s_setup_id AS s_setup_id_1,
created_at AS created_at_1
FROM setup_part_setting
ORDER BY s_p_s_id, created_at
) sps
ON s.s_id = sps.s_setup_id_1
AND p.p_id_1 = sps.part_id_1
WHERE s.s_id IS NOT NULL
ORDER BY s.created_at;
My code:
SELECT *
FROM setup s
JOIN (SELECT p_id AS p_id_1,
p_setup_id AS p_setup_id_1
FROM part) p
ON s.s_id = p.p_setup_id_1
JOIN (SELECT s_p_s_id AS s_p_s_id_1,
part_id AS part_id_1,
s_setup_id AS s_setup_id_1,
created_at AS created_at_1
FROM setup_part_setting) sps
ON s.s_id = sps.s_setup_id_1
AND p.p_id_1 = sps.part_id_1
WHERE s.s_id IS NOT NULL
ORDER BY s.created_at;