ホームページ データベース mysql チュートリアル Mysql での Join の応用例の詳細

Mysql での Join の応用例の詳細

Apr 30, 2017 am 10:18 AM
join mysql

この章では、

MySQLの JOIN を使用して 2 つ以上のテーブルのデータを クエリする方法を紹介します。 mysql への参加に興味のある友人は、一緒に学んでください 前の章では、テーブルからデータを読み取る方法を学習しました。これは比較的単純ですが、実際のアプリケーションでは、複数のデータからデータを読み取る必要があることがよくあります。テーブルから。


この章では、MySQL の JOIN を使用して 2 つ以上のテーブルのデータをクエリする方法を紹介します。

SELECT、UPDATE、DELETE ステートメントで MySQL の結合を使用して、複数テーブルのクエリを結合できます。

以下では、MySQL LEFT JOIN と JOIN の使用の違いを示します。

コマンドプロンプトでJOINを使用してください RUNOOBデータベースには2つのテーブルtcount_tblとrunoob_tblがあります。 2 つのデータ テーブルのデータは次のとおりです:

次の例を試してください:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

root@host# mysql -u root -p password;

Enter password:*******

mysql> use RUNOOB;

Database changed

mysql> SELECT * FROM tcount_tbl;

+-----------------+----------------+

| runoob_author | runoob_count |

+-----------------+----------------+

| mahran   |    20 |

| mahnaz   |   NULL |

| Jen    |   NULL |

| Gill   |    20 |

| John Poul  |    1 |

| Sanjay   |    1 |

+-----------------+----------------+

6 rows in set (0.01 sec)

mysql> SELECT * from runoob_tbl;

+-------------+----------------+-----------------+-----------------+

| runoob_id | runoob_title | runoob_author | submission_date |

+-------------+----------------+-----------------+-----------------+

|   1 | Learn PHP  | John Poul  | 2007-05-24  |

|   2 | Learn MySQL | Abdul S   | 2007-05-24  |

|   3 | JAVA Tutorial | Sanjay   | 2007-05-06  |

+-------------+----------------+-----------------+-----------------+

3 rows in set (0.00 sec)

mysql>

ログイン後にコピー

次に、MySQL の JOIN を使用して上記 2 つのテーブルを接続し、すべての runoob_author フィールドに対応する runoob_count フィールド値を読み取ります。 runoob_tbl テーブルと tcount_tbl テーブル:

1

2

3

4

5

6

7

8

9

10

11

mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count

 -> FROM runoob_tbl a, tcount_tbl b

 -> WHERE a.runoob_author = b.runoob_author;

+-------------+-----------------+----------------+

| runoob_id | runoob_author | runoob_count |

+-------------+-----------------+----------------+

|   1 | John Poul  |    1 |

|   3 | Sanjay   |    1 |

+-------------+-----------------+----------------+

2 rows in set (0.01 sec)

mysql>

ログイン後にコピー

PHP スクリプトで JOIN を使用しますPHP で

mysql_query

() 関数を使用して、SQL ステートメントを実行します。上記と同じ SQL ステートメントをパラメータとして使用できます。 mysql_query()関数次の例を試してください:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<?php

$dbhost = 'localhost:3036';

$dbuser = 'root';

$dbpass = 'rootpassword';

$conn = mysql_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

 die('Could not connect: ' . mysql_error());

}

$sql = 'SELECT a.runoob_id, a.runoob_author, b.runoob_count

  FROM runoob_tbl a, tcount_tbl b

  WHERE a.runoob_author = b.runoob_author';

mysql_select_db('RUNOOB');

$retval = mysql_query( $sql, $conn );

if(! $retval )

{

 die('Could not get data: ' . mysql_error());

}

while($row = mysql_fetch_array($retval, MYSQL_ASSOC))

{

 echo "Author:{$row['runoob_author']} <br> ".

   "Count: {$row['runoob_count']} <br> ".

   "Tutorial ID: {$row['runoob_id']} <br> ".

   "--------------------------------<br>";

}

echo "Fetched data successfully\n";

mysql_close($conn);

?>

ログイン後にコピー

MySQL LEFT JOINMySQL の左結合は結合とは異なります。 MySQL LEFT JOIN は、右側のテーブルに対応するデータがない場合でも、左側のデータ テーブルのすべてのデータを読み取ります。

MySQL LEFT JOIN のアプリケーションを理解するために、次の例を試してください。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

root@host# mysql -u root -p password;

Enter password:*******

mysql> use RUNOOB;

Database changed

mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count

 -> FROM runoob_tbl a LEFT JOIN tcount_tbl b

 -> ON a.runoob_author = b.runoob_author;

+-------------+-----------------+----------------+

| runoob_id | runoob_author | runoob_count |

+-------------+-----------------+----------------+

|   1 | John Poul  |    1 |

|   2 | Abdul S   |   NULL |

|   3 | Sanjay   |    1 |

+-------------+-----------------+----------------+

3 rows in set (0.02 sec)

ログイン後にコピー

LEFT JOIN は、上の例で使用されています。このステートメントは、左側のデータ テーブル runoob_tbl 内の選択されたフィールド データをすべて読み取ります。右側のテーブル tcount_tbl には、対応する runoob_author フィールド値がありません。

以上がMysql での Join の応用例の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

PHPのビッグデータ構造処理スキル

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? May 05, 2024 am 09:06 AM

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP 配列ページングのパフォーマンス最適化戦略 PHP 配列ページングのパフォーマンス最適化戦略 May 02, 2024 am 09:27 AM

PHP 配列ページングのパフォーマンス最適化戦略

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? Jun 02, 2024 pm 02:13 PM

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?

See all articles