SELECT * FROM (SELECT a.video_name NAME,a.vid,a.pos,a.pic,a.diction,b.app_code,a.strength,a.ad_mark FROM access_app_video a
LEFT JOIN access_app b ON a. app_id=b.id WHERE tag_interest=2 AND app_id=1 AND a.ad_mark=1 AND a.status=0 ORDER BY ABS(tag_sex-16),ABS(tag_figure-10)) aa
ORDER BY aa.strength DESC LIMIT 0,12
このサブクエリを結合テーブルクエリに変更する方法
SELECT a.video_name NAME,a.vid,a.pos,a.pic,a.definition,b.app_code,a.strength,a.ad_mark FROM access_app_video a LEFT JOIN access_app b ON a.app_id=b.id WHERE tag_interest=2 AND app_id=1 AND a.ad_mark=1 AND a.status=0 ORDER BY a.strength, ABS(tag_sex-16),ABS(tag_figure-10) DESC LIMIT 0,12
2 番目に感謝します答えるためのフロアだが、それを書くこのように、検索結果は元の結果とは異なります。元の SQL は、最初に ABS (tag_sex-16)、ABS (tag_figure-10) に従ってソートし、次に a.strength に従ってソートすることを意味します。 2階の仕分けルールを変更しました。 。
#2
このステートメントではテーブル結合クエリを使用できませんか?
もちろん ABS(tag_sex- の場合) 16),ABS(tag_figure-10) 同じ値のセットが複数ある場合、結果は少し異なります
これが作者がそのように書いた理由です
5
これで使いたいと思います。 SQLを書くためのORM。すべてのサブクエリを接続テーブルクエリを使用するのではなく、接続テーブルクエリに変更したいと常に考えていました。よく考えてみると、接続テーブルクエリは解決できないようです。このまま書き続けるだけ