テーブル結合の後に多重ソート
複雑なルールで結合とソートをしたいのですが、可能でしょうか?
mysql 4.1.21 です。
テーブルA
shop_id | name | adress
テーブルB
shop_id | news_title | end_date |image|
上記テーブルをshop_id でleft joinで結合します。
その後ソートをする条件は
まずend_date が過ぎているものは、news_titleや
imageに何か入っていても、入っていないことにする。
次にテーブルBのnews_title に文字が入っていれば上位にソートされ
さらにテーブルBのimageは1か0の数字が入っていて、1が上位にソートされる。
end_date の条件指定する部分で方法が見つかりません。
end_date の条件を無視すると下記sql で希望する結果が得られています。
select shop_id,shop_name
from テーブルA left join テーブルB
on テーブルA.shop_id = テーブルB.shop_id
order by image desc,news_title <>'' desc
です。
end_date が過ぎているものは image = '0' ,news_title ='' と同じことになります。
結合する時に、if文で判定してフラグカラムを作るなんて無理でしょうか?他に思いつく方法が無いのですが、、、
どなたかご教授お願いします。
お礼
ありがとうございます。 一人だけ年長なんですね(笑)