ホームページ  >  記事  >  バックエンド開発  >  サブクエリを結合テーブルクエリに変換する問題

サブクエリを結合テーブルクエリに変換する問題

WBOY
WBOYオリジナル
2016-06-23 13:24:23989ブラウズ

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

このステートメントではテーブル結合クエリを使用できませんか?
最終結果は a.strength の降順になります。 a.strength が同じ場合は ABS(tag_sex-16),ABS(tag_figure-10) の昇順になります

もちろん ABS(tag_sex- の場合) 16),ABS(tag_figure-10) 同じ値のセットが複数ある場合、結果は少し異なります

これが作者がそのように書いた理由です

5

これで使いたいと思います。 SQLを書くためのORM。すべてのサブクエリを接続テーブルクエリを使用するのではなく、接続テーブルクエリに変更したいと常に考えていました。よく考えてみると、接続テーブルクエリは解決できないようです。このまま書き続けるだけ
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。