SQL入門チュートリアルマニュ...login
SQL入門チュートリアルマニュアル
著者:php.cn  更新時間:2022-04-12 14:15:40

SQL接続(JOIN)



SQL 結合は、2 つ以上のテーブルの行を結合するために使用されます。


SQL JOIN

SQL JOIN 句は、これらのテーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するために使用されます。

最も一般的な JOIN タイプ: SQL INNER JOIN (単純な JOIN)。 SQL INNER JOIN は、JOIN 条件を満たす複数のテーブルのすべての行を返します。

デモデータベース

このチュートリアルでは、php サンプル データベースを使用します。

以下は「ウェブサイト」テーブルから選択されたデータです:

+----+-------------+------------ - ---------------+------+-----------+
| 国名 |
-- -+---------------+---------------+----- --+------+
| グーグル https://www.google.cm/ | タオバオ | | 13 | 中国語 |
| 4689 | フェイスブック | https://www.facebook.com/ |
| 0 | --------+--------------------------+----------+--- - -----+

以下はWebサイトアクセス記録テーブル「access_log」のデータです:

mysql> SELECT * FROM access_log;
+-----+---------+------ +- -----------+
日付 |
+-----+------+- ----------+
| 2016-05-10 | 230 | 05 - 14 | 2 | 2016 年 5 月 14 日 | 6 | 2016 年 5 月 14 日3 | 220 | 2016-05-15 | 8 | 545 | 2016-05-17 |
----+-------+-----------+
9 行セット (0.00 秒)


「ウェブサイト」の「
id」に注意してください" table
" 列は、"access_log" テーブルのフィールド "
site_id
" を指します。上の 2 つのテーブルは、「site_id」列を通じてリンクされています。
次に、次の SQL ステートメント (INNER JOIN を含む) を実行するとします。

Instance SELECT Websites.id、Websites.name、access_log.count、access_log.dateFROM Websites

INNER JOIN access_log

ON Websites.id=access_log.site_id;

上記SQLを実行した出力結果は以下の通りです:





さまざまな SQL JOIN

例に進む前に、使用できるさまざまな SQL JOIN タイプをリストしてみましょう:

  • INNER JOIN: テーブル内に少なくとも 1 つの一致がある場合に行を返します

  • LEFT JOIN: 右のテーブルに一致するものがない場合でも、左のテーブルのすべての行を返します

  • RIGHT JOIN: 左のテーブルに一致するものがない場合でも、右のテーブルからすべての行を返します

  • FULL JOIN: いずれかのテーブルに一致がある限り、行が返されます