SELECT * FROM (SELECT
`position`,
null `paragraph`,
`resource`,
`figcaption`
FROM `figure-section-article` WHERE section = 5
UNION
SELECT
`position`,
`paragraph`,
null `resource`,
null `figcaption`
FROM `paragraph-section-article` WHERE section = 5) t
ORDER BY `position`
SELECT
`paragraph`,
`resource`,
`figcaption`
FROM
(
SELECT `position`
FROM `paragraph-section-article`
WHERE `section` = 5
UNION
SELECT `position`
FROM `figure-section-article`
WHERE `section` = 5
) `paragraph+figure`
LEFT JOIN (SELECT * FROM `paragraph-section-article` WHERE section = 5) t1 USING (`position`)
LEFT JOIN (SELECT * FROM `figure-section-article` WHERE section = 5) t2 USING (`position`)
ORDER BY `position`;