SQLでAがBの条件の時を優先してもしなかったら違うAを出力するYJコード一覧のクエリ

タイトル長くなった。

すげー時間かかったけどこれでできた。

オーダーでBを優先して表示させているのがいい感じ

最初はSelectのMAXとかでやってた。

でもMAXとかの方が処理は早い

まぁUNIONするよりこれでやる方が100倍ぐらい早いのでこれでいこう

 

SELECT *
FROM `iyaku_code` AS m
WHERE `JANコード` = (
SELECT `JANコード`
FROM `iyaku_code`
AS s
WHERE m.`個別医薬品コード` = s.`個別医薬品コード`
order by
case when s.`A` =”B” then 1 else 2 end,
s.`A`
limit 1