この記事では、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 種類)
スタンドアロンの hbase について、まずは説明しましょう。 Dockerをインストールするまず ...
1. 設置環境1. HUAWEI mate x CPU i5 82500u、8g メモリ、独立グラフ...
皆さんはこのような状況に遭遇したことがあるでしょうか。プロジェクトや研究開発を行う際に、緊急にファイ...
元の URL: http://segmentfault.com/blog/ciaocc/119000...
関連記事:初心者が学ぶ HTML タグ (4)導入された HTML タグは、必ずしも XHTML 仕...
目次単一ノード差分単一要素を調整するマルチノード差分調整子配列ノードが移動したかどうかを判断するには...
最近の問題としては、次のような現象があります。システムには、docker run コマンドを継続的に...
max_allowed_packet は、受け入れるパケットのサイズを設定するために使用される ...
1. HTMLフォントカラー設定HTML では、フォント タグを使用してフォント コンテンツの色を設...
この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...
Linux の seq コマンドは、数字のリストを非常に高速に生成でき、使いやすく柔軟性に優れてい...
HTML5 は HTML 標準の次のバージョンです。ますます多くのプログラマーが、Web サイトの構...
目次1. 上の写真2. ユーザーが存在しない3. コードをアップロードする1. 上の写真 2. ユー...
1つ、 G:\MySQL\MySQL Server 5.7\bin> mysqld --ini...
MySQL をインストールすると初期パスワードが与えられますが、この初期パスワードは大文字と小文字の...