この記事では、MySQL のマルチテーブル共同クエリ操作について説明します。ご参考までに、詳細は以下の通りです。 MySQL マルチテーブル ジョイント クエリは、MySQL データベースのクエリ方法です。以下では、参考と学習のために、MySQL マルチテーブル ジョイント クエリの構文を紹介します。 MySQL マルチテーブル共同クエリ構文: 次のようにコードをコピーします。 SELECT * FROM insert table LEFT JOIN main table ON t1.lvid=t2.lv_id select * from mytable,title where table name 1.name=table name 2.writer; MySQL バージョン 4.0 以降の場合は、 SELECT `id`, `name`, `date`, '' AS `type` FROM table_A WHERE 条件ステートメント... 連合 SELECT `id`, `name`, `date`, 'Not Completed' AS `type` FROM table_B WHERE 条件文... ORDER BY `id` LIMIT num; MySQL バージョンが 4.0 未満の場合、一時テーブルを作成する必要があります。これは 3 つの手順に分かれています。例は次のとおりです。 ステップ1:一時テーブルtmp_table_nameを作成し、関連するレコードをtable_Aに挿入します。 次のようにコードをコピーします。 $sql = "CREATE TEMPORARY TABLE tmp_table_name SELECT `id`, `name`, `date`, 'completed' AS `type` FROM table_A WHERE 条件文... "; ステップ2: table_Bから関連レコードを取得し、一時テーブルtmp_table_nameに挿入します。 次のようにコードをコピーします。 INSERT INTO tmp_table_name SELECT `id`, `name`, `date2` AS `date`, 'Not Completed' AS `type` FROM table_B WHERE 条件文... ステップ3:一時テーブルtmp_table_nameからレコードを取得する SELECT * FROM tmp_table_name ORDER BY id DESC union、order by、limitの違いの分析 コード例: テーブル「test1」を作成します( `id` int(10) 符号なし NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `desc` varchar(100) NOT NULL, 主キー (`id`) ) エンジン=InnoDB デフォルト文字セット=utf8 1. 次のクエリはエラーを報告します: [Err] 1221 - UNIONとORDER BYの使い方が間違っています コード例: select * from test1 where name like 'A%' order by name 連合 select * from test1 where name like 'B%' order by name 変更後: コード例: test1 から * を選択し、名前が 'A%' のような場合 連合 select * from test1 where name like 'B%' order by name 括弧のない結合では、order by は 1 つしか使用できないことに注意してください (結合の両側の order by 列の名前が異なる場合はどうなるか考えてみてください)。これにより、結合後に結果セットが並べ替えられます。 変更後: コード例: (test1 から * を選択し、名前が 'A%' のような名前で並べ替えます) 連合 (test1 から * を選択し、名前が 'B%' のような名前で並べ替えます) これも可能。2 つの order by ステートメントは、union の前に実行されます。 2. 同様に コード例: test1 から * を選択、名前は 'A%' で制限は 10 です 連合 test1 から * を選択、名前は 'B%' のように制限 20 は以下と同等です: コード例: (test1 から * を選択、名前が 'A%' のような場合、制限は 10) 連合 (test1 から * を選択、名前が 'B%' のような場合) 制限 20 つまり、後者の制限は、結合後の選択ではなく、結合後の結果セットに適用されます。 3. UNIONとUNION ALLの違い Union は、Union の両側の選択結果セット内の重複行を除外しますが、Union All は重複行を除外しません。 コード例: (test1 から * を選択、名前が 'A%' のような場合、制限は 10) 連合 (test1 から * を選択、名前が 'B%' のような場合、制限は 20) 年齢グループ分析のための複雑な SQL ステートメントを試してみましょう。 ( 選択 '5~19' は `年齢` です。 SUM(`印象`) AS 印象、 SUM(`クリック`) AS クリック、 sum(`cost`) AS コスト から `広告グループ年齢レポート` どこ ( ( (`年齢` <= 19) AND (`adgroup_id` = '61') ) AND (`日付` >= '2015-11-22') ) AND (`日付` <= '2017-02-20') ) 連合 ( 選択 '20~29' は `年齢` です。 SUM(`印象`) AS 印象、 SUM(`クリック`) AS クリック、 sum(`cost`) AS コスト から `広告グループ年齢レポート` どこ ( ( ((`年齢` <= 29) AND(`年齢` >= 20)) AND (`adgroup_id` = '61') ) AND (`日付` >= '2015-11-22') ) AND (`日付` <= '2017-02-20') ) 連合 ( 選択 '30~39' は `年齢` です。 SUM(`印象`) AS 印象、 SUM(`クリック`) AS クリック、 sum(`cost`) AS コスト から `広告グループ年齢レポート` どこ ( ( ((`年齢` <= 39) AND(`年齢` >= 30)) AND (`adgroup_id` = '61') ) AND (`日付` >= '2015-11-22') ) AND (`日付` <= '2017-02-20') ) 連合 ( 選択 '40~49' は `年齢` です。 SUM(`印象`) AS 印象、 SUM(`クリック`) AS クリック、 sum(`cost`) AS コスト から `広告グループ年齢レポート` どこ ( ( ((`年齢` <= 49) AND(`年齢` >= 40)) AND (`adgroup_id` = '61') ) AND (`日付` >= '2015-11-22') ) AND (`日付` <= '2017-02-20') ) 連合 ( 選択 '50~59' は `年齢` です。 SUM(`印象`) AS 印象、 SUM(`クリック`) AS クリック、 sum(`cost`) AS コスト から `広告グループ年齢レポート` どこ ( ( ((`年齢` <= 59) AND(`年齢` >= 50)) AND (`adgroup_id` = '61') ) AND (`日付` >= '2015-11-22') ) AND (`日付` <= '2017-02-20') ) MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Ubuntu インストール時にブラックスクリーンが表示される場合の解決策 (3 種類)
目次1. インストール2. カプセル化に問題はない3. ファイルを作成する4. アドレス設定をリクエ...
Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...
Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...
目次序文Ajax シリアルおよびパラレルAjaxの同時リクエスト制御のための2つのソリューションPr...
Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...
この記事では、参考までにMySQL 8.0.16のインストールと設定方法のグラフィックチュートリアル...
昨年末、Thinkpad T450 のデュアルシステムの opensuse を Manjaro に置...
目次序文1. Linux は yum ソースを変更します (MYSQL のインストールが遅い場合は試...
1. 背景Youzan の各 OLTP データベース インスタンスには、実行時間が特定のしきい値を超...
目次質問分析する解決するAlert() 関数を置き換えるsetTimeOut関数まとめ質問数日前、J...
フロントエンドで画像をアップロードする原理は、入力 type="file" タグ...
Nginxは正規表現を使用して、ワイルドカードドメイン名をディレクトリに自動的に一致させます。 Ng...
目次1. 2 つの setState を何回呼び出すのですか? 2. 2 つの setState の...
コードをコピーコードは次のとおりです。 <object classid="clsid...
目次Pagodaをインストールする管理塔Nginx サービス管理Apache サービス管理MySQL...