求一个简单的sql语句,关于多表join的

有三个表如下:
table_link:

img

table_step:

img

table_test:

img

希望得到的结果:

img

其中table_link中的entity_id分别与table_step的step_id和table_test的test_id对应。最终结果就是需要找到table_link表中type为"test"和"step"的name并放到一起显示出来。

img


sql语句:

SELECT
    c.NAME,
    e.NAME type,
    e.entity_id 
FROM
    (
    SELECT
        b.NAME,
        b.entity_id 
    FROM
        ( SELECT NAME, step_id entity_id FROM table_step UNION SELECT NAME, test_id entity_id FROM table_test ) b 
    ) c,
    ( SELECT d.NAME, d.entity_id FROM ( SELECT type NAME, entity_id FROM table_link ) d ) e 
WHERE
    e.entity_id = c.entity_id;

table_step和table_test先union all一下,再left join table_link