このクエリでは、UNION を使用して、2 つのほぼ同一のクエリの結果を単純に結合しています。唯一の違いは、WHERE 句の tp.t_id が異なることです。ここでは、UNION 内の両方のクエリがどのように似ているかを強調するために、テーブル名を変更しました。(これらのテーブルが実際に何と呼ばれているかは関係ないと思います)。
メンテナンス目的で他に何もない場合、これらのクエリの冗長性を取り除く方法があるかどうかを知りたいです。
ありがとう!
SELECT SUM(s.count) AS total
FROM Table1 s
JOIN Table2 p ON p.id=s.p_id
JOIN Table3 tp ON tp.p_id=s.p_id
JOIN Table4 t ON tp.p_id=s.p_id
WHERE s.g_id=1 AND tp.t_id=1 AND s.type=1
UNION
SELECT SUM(s.count) AS total
FROM Table1 s
JOIN Table2 p ON p.id=s.p_id
JOIN Table3 tp ON tp.p_id=s.p_id
JOIN Table4 t ON tp.p_id=s.p_id
WHERE s.g_id=1 AND tp.t_id=2 AND s.type=1