前の章では、1 つのテーブルからデータを読み取る方法を学習しました。これは比較的簡単ですが、実際のアプリケーションでは、複数のテーブルからデータを読み取る必要があることがよくあります。 このセクションでは、MySQL JOIN を使用して 2 つ以上のテーブルのデータをクエリする方法を紹介します。 MySQL 結合を使用すると、SELECT、UPDATE、および DELETE ステートメントで複数のテーブルを結合できます。 以下では、MySQL LEFT JOIN と JOIN の使用の違いについて説明します。 コマンドプロンプトでJOINを使用する RUNOOB データベースには、tcount_tbl と runoob_tbl という 2 つのテーブルがあります。 2 つのデータ テーブルのデータは次のとおりです。 例 次の例を試してください。 root@host#mysql -u root -p パスワード; パスワードを入力してください:******* mysql> RUNOOB を使用します。 データベースが変更されました mysql> tcount_tbl から * を選択; +-----------------+----------------+ | runoob_author | runoob_count | +-----------------+----------------+ | マフラーン | 20 | | マハナズ | NULL | | ジェン | NULL | | ギル | 20 | | ジョン・ポール | 1 | | サンジェイ | 1 | +-----------------+----------------+ セット内の6行(0.01秒) mysql> runoob_tbl から * を選択します。 +-------------+----------------+-----------------+-----------------+ | runoob_id | runoob_title | runoob_author | submission_date | +-------------+----------------+-----------------+-----------------+ | 1 | PHP を学ぶ | John Poul | 2007-05-24 | | 2 | MySQL を学ぶ | Abdul S | 2007-05-24 | | 3 | JAVA チュートリアル | Sanjay | 2007-05-06 | +-------------+----------------+-----------------+-----------------+ セット内の 3 行 (0.00 秒) マイSQL> 次に、MySQL JOIN を使用して上記の 2 つのテーブルを接続し、runoob_tbl テーブル内のすべての runoob_author フィールドに対応する runoob_count フィールドの値を tcount_tbl テーブルから読み取ります。 mysql> a.runoob_id、a.runoob_author、b.runoob_countを選択します -> runoob_tbl a、tcount_tbl b から -> ここで、a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | runoob_id | runoob_author | runoob_count | +-------------+-----------------+----------------+ | 1 | ジョン・ポール | 1 | | 3 | サンジェイ | 1 | +-------------+-----------------+----------------+ セットに2行(0.01秒) マイSQL> PHP スクリプトで JOIN を使用する PHP は、mysql_query() 関数を使用して SQL ステートメントを実行します。mysql_query() 関数のパラメータとして同じ SQL ステートメントを使用できます。 次の例を試してください。 <?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'ルートパスワード'; mysql_connect は、次のコードで実行されます。 if(!$conn) { die('接続できませんでした: ' . mysql_error()); } $sql = 'a.runoob_id、a.runoob_author、b.runoob_countを選択します runoob_tbl a、tcount_tbl b から ここで、a.runoob_author = b.runoob_author'; mysql_select_db('RUNOOB'); $retval = mysql_query( $sql, $conn ); if(!$retval) の場合 { die('データを取得できませんでした: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "著者:{$row['runoob_author']} <br> "。 「カウント: {$row['runoob_count']} <br>」。 「チュートリアルID: {$row['runoob_id']} <br>」。 "--------------------------------<br>"; } echo "データが正常に取得されました\n"; mysql_close($conn); ?> MySQL 左結合 MySQL の左結合は結合とは異なります。 MySQL LEFT JOIN は、右側のテーブルに対応するデータがない場合でも、左側のテーブルのすべてのデータを読み取ります。 例 MySQL LEFT JOIN の適用を理解するには、次の例を試してください。 root@host#mysql -u root -p パスワード; パスワードを入力してください:******* mysql> RUNOOB を使用します。 データベースが変更されました mysql> a.runoob_id、a.runoob_author、b.runoob_countを選択します -> runoob_tbl a から tcount_tbl b に左結合 -> ON a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | runoob_id | runoob_author | runoob_count | +-------------+-----------------+----------------+ | 1 | ジョン・ポール | 1 | | 2 | アブドゥル S | NULL | | 3 | サンジェイ | 1 | +-------------+-----------------+----------------+ セット内の3行(0.02秒) 上記の例では、LEFT JOIN が使用されています。このステートメントは、右側のテーブル tcount_tbl に対応する runoob_author フィールド値がない場合でも、左側のデータ テーブル runoob_tbl から選択されたすべてのフィールド データを読み取ります。 上記は、編集者が紹介したMySQLでのJoinの使用に関する詳細な説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
>>: Linux システムで Java 環境変数を設定する方法
この記事では、JavaScriptでキャンバスを使用して座標と線を描く具体的なコードを参考までに紹介...
この記事では、スライディングカルーセル効果を実現するためのjsの具体的なコードを参考までに共有します...
1. 動的コンポーネント <!DOCTYPE html> <html> &l...
目次導入1. 異食症2. レナ3. コンプレッサー4. ファブリック5. ぼかす6. 画像を結合する...
easyui フレームワークのコードは次のとおりです。 css: .ファイルボックス{ フロート:...
Web サービスは、アプリケーション間の通信に関係しています。SOAP は、Web サービス間の X...
この記事では、ブルーグリーン デプロイメントと、nginx を使用してカナリア リリースを最も簡単な...
スワップの紹介Linux のスワップ (スワップ パーティション) は、Windows の仮想メモリ...
Vueドロップダウンリストの2つの実装最初の方法はv-forを使用する <el-select ...
最近 Linux をいじっていたので、nginx の新しいバージョンをインストールしたいと思いました...
目次1. 重複行を見つける方法2. 重複行を削除する方法3. 複数の列で重複を見つける方法4. クエ...
目次1. ビューフック1. ngAfterViewInit および ngAfterViewCheck...
前回の記事では、次のことを紹介しました。 MySQL8.0.20 インストール チュートリアルとイン...
Activiti7 の正式リリース以降、SpringBoot2.x との統合開発を全面的にサポートし...
Nginx は、一般的に 7 層の負荷分散に使用できます。この記事では、負荷分散に関する基本的な知識...