この UNION を単純化して、結合されるクエリのほぼ冗長性を回避することは可能ですか? ここに見られるように、両方のクエリは似ています。table2 の別の列に参加するだけです。同じクエリで Inner Joining 2x の代わりに Union を使用する理由は、このクエリがサブクエリとして使用されるという事実により、結果が 1 列にある必要があるためです。
SELECT t1.id as id
FROM table1 g
INNER JOIN table2 t1 on g.t_id = t1.id
WHERE g.id=1
UNION
SELECT t2.id as id2
FROM table1 g
INNER JOIN table2 t2 on g.t2_id = t2.id
WHERE g.id=1