mysql join tutorial inner
構文とプログラミングの例を使用して、Inner、Outer、Cross、Left、Right、SelfなどのさまざまなMySQLJOINステートメントについて学習します。
このチュートリアルでは、MySQL JOINについて学習し、MySQLでサポートされているさまざまなタイプの結合についても理解します。最も単純な形式のJOINは、単一のクエリに対して複数のテーブルからデータを取得/更新または削除する手段と考えることができます。
したがって、本質的に、JOINは2つ以上のテーブルを組み合わせて、特定の条件に対してデータをフェッチします。
MySQLは、サブクエリを使用したり、UNIONなどを使用して複数のクエリを組み合わせたりすることにより、複数のテーブルからデータをクエリする他のさまざまな方法もサポートしています。
学習内容:
正規化されたテーブル
正規化されたMySQLデータベースでは、テーブルは外部キーなどのキー制約によって共通の列と関係があります。
例を使ってこれを理解してみましょう –EMPLOYEEとEMPLOYEE_DEPARTMENTの2つのテーブルがあるとします。非正規化されたデータベース、つまりすべての列を持つ単一のテーブルでは、同じ部門の一部である従業員が多数存在する可能性があるため、たとえば部門に関する多くの情報が複製されます。
したがって、これらの重複を減らしてストレージを節約するために、データベースは正規化された状態に保たれます。
したがって、この場合、EMPLOYEEテーブルのDepartment_idフィールドでDepartmentを参照し、Department Info、Department headなど、Departmentに関連するすべての関連情報をEMPLOYEE_DEPARTMENTテーブルの一部として保持できます。
つまり、EMPLOYEEとEMPLOYEE_DEPARTMENTは、EMPLOYEEテーブルのFOREIGNKEYおよびEMPLOYEE_DEPARTMENTテーブルのPRIMARYKEYとして機能するDepartment_idフィールドを介して相互にリンクされています。
下の画像は、これらの両方のテーブルの間に関係がある画像表現です。 外部キー制約
MySQL JOIN
MySQL JOINは、特定の条件に対して2つ以上のテーブルからデータをフェッチ、更新、または削除するために使用されます。したがって、JOINは常にSELECT、UPDATE、またはDELETEステートメントと組み合わせて使用されます
JOINコマンドの構文:
SELECTで結合
SELECT {column_list} FROM tableName1 {joinType} tableName2 ON {joinCondition}
UPDATEで参加する
DELETE FROM tableName1 {joinType} tableName2 ON {joinCondition} WHERE {condition}
DELETEで参加
UPDATE tableName1 SET targetColumn = targetValue FROM tableName1 {joinType} tableName2 ON {joinCondition} WHERE {condition}
JOINは1つのクエリで複数のテーブルに適用できることに注意してください。ただし、簡単にするために、最初に2つのテーブルでの結合の使用について理解してみましょう。
構文のさまざまな部分は次のとおりです。
- {column_list} – これは、クエリの結果として取得する列の名前を表します。
- {JoinType} – これは、適用している結合のタイプを示しています。 データをフェッチできるJOINSには次のような種類があります。
- 内部結合
- アウタージョイン
- 左外部結合
- 右外部結合
- クロス結合
チュートリアルの次のセクションで、これらすべての異なるタイプのMySQLJOINSについて学習します。
- {JoinCondition} – これは、JOINがデータを照会およびフェッチするために使用される列条件です。
次のセクションでは、MySQLで使用できるさまざまなタイプの結合について説明します。
MySQLJOINの種類
サンプルデータの準備
JOINSを使用するには、以下の詳細を含む2つのテーブルEmployeeとEmployee_Departmentを使用します。役立つサイトを使用/参照できます ここに スキーマのダミーデータを生成するため。
テーブルの作成と挿入に関するクエリの一覧表示:
CREATE TABLE IF NOT EXISTS Employee_Department ( name varchar(100), id INT NOT NULL auto_increment, PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS Employee ( name varchar(100), id int not null auto_increment, address varchar(100), Department_id int, PRIMARY KEY (id), FOREIGN KEY (Department_id) references Employee_Department(id) ); INSERT INTO `Employee_Department` VALUES ('Information Technology','1'), ('HR','2'), ('Finance','3'), ('Accounting','4'), ('Housekeeping','5'), ('Security','6'), ('Support','7'), ('Contract Staff','8'), ('Sales','9'), ('Management','10'); INSERT INTO `Employee` VALUES ('Veniam','1','640 Damon Junction
East Mathew, NY 68818','3'), ('Molestiae','2','6658 Hollis Club
Ernamouth, TX 19743','10'), ('Officiis','3','59965 Mason Neck Apt. 985
Kareemborough, NV 85535','9'), ('Rerum','4','91067 Geovany Fort
Hanefort, WA 92863','6'), ('Et','5','7647 Reva Shores Suite 970
New Audrafort, OH 17846-5397','2'), ('Et','6','9419 Carmela Burg Apt. 687
Aimeebury, SD 32389-4489','8'), ('Laborum','7','6961 Weissnat Drive
Donnellyfort, MT 53947','6'), ('Cupiditate','8','117 Nellie Summit Suite 982
South Heavenfurt, CA 45675','8'), ('Eveniet','9','9086 Mariam Square Suite 698
South Dulce, MT 82861-3079','2'), ('Rerum','10','783 Goodwin Burgs Apt. 429
Willmsfort, UT 42820-1019','9'), ('Quis','11','42928 Ernesto Trail
East Jules, WV 87169-2851','1'), ('Esse','12','161 Kassulke Stravenue Apt. 937
Williamsonton, MS 62622','7'), ('Dolores','13','22811 Liliana Trail Apt. 890
South Ernesto, MT 04134','10'), ('Ut','14','981 Laron Overpass Suite 361
West Olahaven, FL 46982-7801','10'), ('Mollitia','15','411 Louisa Mill
South Maximefort, MA 04903','8'), ('Necessitatibus','16','2853 Jonathon Turnpike
Quitzonville, KY 54776','4'), ('Fugit','17','3647 Rosalinda Corner
Maureenstad, RI 96605','5'), ('Corporis','18','03559 Nicholas Circle Apt. 364
West Zettaberg, ID 58592-3447','8'), ('Neque','19','56111 Alysson Gateway Apt. 212
Leschbury, VT 90605-2306','8'), ('Velit','20','263 O'Keefe Avenue Apt. 884
West Missouri, IL 50303','6'),
内部結合
INNER JOINは、JOINの最も一般的な形式であり、非常に広く使用されています。ほとんどすべての人がこれをどこかで使用すべきでした。構文を見てから、いくつかのサンプルクエリを見てみましょう。
構文:
SELECT {column_list} FROM tableName1 INNER JOIN tableName2 ON {joinCondition}
上記で宣言されたテーブル(EmployeeおよびEmployee_Department)からすべてのEmployeesのDepartment_namesをフェッチするクエリ:
SELECT Employee.name as Employee_name, Employee_Department.name as Department_name FROM Employee INNER JOIN Employee_Department ON Employee.Department_id = Employee_Department.id
上記のクエリの出力は次のとおりです。
従業員名 | 部署名 |
---|---|
物事 | セキュリティ |
WHO | 情報技術 |
そして | 人事 |
落ちる | 人事 |
私 | ファイナンス |
ニーズ | 会計 |
Fgit | ハウスキーピング |
おやつ | セキュリティ |
お願いします | セキュリティ |
それ | サポート |
そして | 契約スタッフ |
意気込み | 契約スタッフ |
レジリエンス | 契約スタッフ |
体 | 契約スタッフ |
フェア | 契約スタッフ |
オフィス | 販売 |
物事 | 販売 |
煩わしさ | 管理 |
痛み | 管理 |
アウト | 管理 |
注意: ここでは、列名のエイリアスを使用しました。 例: Employee.name as Employee_name –結果をより読みやすく包括的にするためだけに。
このクエリを変更して、文字「m」で始まる名前だけをフェッチしてみましょう。
SELECT Employee.name as Employee_name, Employee_Department.name as Department_name FROM Employee INNER JOIN Employee_Department ON Employee.Department_id = Employee_Department.id WHERE Employee.name like 'm%'
以下は出力です:
従業員名 | 部署名 | |||||
---|---|---|---|---|---|---|
おやつ | 7 | 6961ワイスナットドライブ Donnellyfort、MT 53947 | 6 | ヌル | ヌル | ヌル |
煩わしさ | 管理 | |||||
レジリエンス | 契約スタッフ |
それでは、以下のようにベン図を使用して内部結合を理解しましょう。返される結果の行は、JOIN条件と照合された両方のテーブル間で重複するデータで構成されます。
アウタージョイン
OUTER JOINは、一致しない行(またはクエリされた列のデータがnullの行)を含むことを除いて、2つ以上のテーブルからデータをフェッチするために使用されます。
外部結合をよりよく理解するには、フィールド– idとaddressを持つ新しいテーブルoffice_locationsを追加し、最初に作成されたEmployeeテーブルに `office_id`という名前の新しい列を追加します。
同じためのクエリは次のとおりです。
CREATE TABLE IF NOT EXISTS office_locations ( address varchar(100), id INT NOT NULL auto_increment, PRIMARY KEY (id) ); ALTER TABLE Employee ADD COLUMN office_id int; INSERT INTO `office_locations`(address) VALUES('Bangalore'), ('Mumbai'), ('Seattle'), ('Santa Clara'); UPDATE Employee SET office_id=1 where id % 2 = 0; UPDATE Employee SET office_id=2 where id % 3 = 0;
外側の結合を図で理解するには、以下のベン図を参照してください。
OUTERJOINには2つのタイプがあります
a)左外部結合
名前が示すように、このタイプの結合は、JOINクエリの左側にあるテーブルからすべての行(NULL値を含む)をフェッチします。簡単に言うと、JOIN条件に一致しないすべての結果/行が返され、右側のテーブルの結果はNULL値になります。
例えば、 すべての従業員の位置データが必要です。つまり、すべての従業員のオフィスの住所を調べます。
SELECT * from Employee LEFT OUTER JOIN office_locations ON Employee.office_id = office_locations.id
上記のクエリの出力:
名前 | Id | 住所 | Department_id | Office_id | オフィスの住所 | Id |
---|---|---|---|---|---|---|
私 | 1 | 640デイモンジャンクション イーストマシュー、ニューヨーク68818 | 3 | ヌル | ヌル | ヌル |
煩わしさ | 二 | 6658ホリスクラブ テキサス州アーナマス19743 | 10 | 1 | バンガロール | 1 |
オフィス | 3 | 59965メイソンネックアパート985 ネバダ州カリームボロー85535 | 9 | 二 | ムンバイ | 二 |
物事 | 4 | 91067ジオバニーフォート) Hanefort, WA 92863 | 6 | 1 | バンガロール | 1 |
そして | 5 | 7647レヴァショアーズスイート970 New Audrafort、OH 17846-5397 | 二 | ヌル | ヌル | ヌル |
そして | 6 | 9419 Carmela BurgApt。 687 Aimeebury、SD 32389-4489 | 8 | 二 | ムンバイ | 二 |
意気込み | 8 | 117ネリーサミットスイート982 サウスヘブンファート、CA 45675 | 8 | 1 | バンガロール | 1 |
落ちる | 9 | 9086マリアムスクエアスイート698 サウスダルス、MT 82861-3079 | 二 | 二 | ムンバイ | 二 |
物事 | 10 | 783 Goodwin BurgsApt。 429 Willmsfort、UT 42820-1019 | 9 | 1 | バンガロール | 1 |
WHO | 十一 | 42928エルネストトレイル イーストジュール、ウェストバージニア州87169-2851 | 1 | ヌル | ヌル | ヌル |
それ | 12 | 161 Kassulke StravenueApt。 937 ウィリアムソントン、MS 62622 | 7 | 二 | ムンバイ | 二 |
痛み | 13 | 22811リリアナトレイルアパート890 サウスエルネスト、MT 04134 | 10 | ヌル | ヌル | ヌル |
アウト | 14 | 981ラロン陸橋スイート361 West Olahaven、FL 46982-7801 | 10 | 1 | バンガロール | 1 |
レジリエンス | 15 | 411ルイザミル サウスマキシムフォート、マサチューセッツ州04903 | 8 | 二 | ムンバイ | 二 |
ニーズ | 16 | 2853 Jonathon Turnpike ケンタッキー州キッツンビル54776 | 4 | 1 | バンガロール | 1 |
FLED | 17 | 3647ロザリンダコーナー Maureenstad、RI 96605 | 5 | ヌル | ヌル | ヌル |
体 | 18 | 03559ニコラスサークルアパート364 West Zettaberg、ID 58592-3447 | 8 | 二 | ムンバイ | 二 |
または | 19 | 56111 Alysson GatewayApt。 212 Leschbury、VT 90605-2306 | 8 | ヌル | ヌル | ヌル |
お願いします | 20 | 263オキーフェアベニューアパート884 イリノイ州ウェストミズーリ50303 | 6 | 1 | バンガロール | 1 |
b)右外部結合
LEFT JOINと同様に、このタイプの結合では、右側のテーブルから一致しないすべてのレコードが、左側のテーブルの列にNULL値で返されます。
EclipseでJavaプロジェクトを開始する
例えば、 サンプルテーブルでは、LEFTJOINに使用したのと同じクエリに対してRIGHTJOINを実行すると、場所が設定されたEmployeeテーブルに行がないため、都市「Seattle」と「SantaClara」にNULL値が取得されます。これらの値に。
SELECT * from Employee RIGHT OUTER JOIN office_locations ON Employee.office_id = office_locations.id
上記のクエリの出力:
名前 | Id | 住所 | Department_id | Office_id | オフィスの住所 | Id |
---|---|---|---|---|---|---|
お願いします | 20 | 263オキーフェアベニューアパート884 イリノイ州ウェストミズーリ50303 | 6 | 1 | バンガロール | 1 |
煩わしさ | 二 | 6658ホリスクラブ テキサス州アーナマス19743 | 10 | 1 | バンガロール | 1 |
物事 | 4 | 91067ジオバニーフォート Hanefort, WA 92863 | 6 | 1 | バンガロール | 1 |
意気込み | 8 | 117ネリーサミットスイート982 サウスヘブンファート、CA 45675 | 8 | 1 | バンガロール | 1 |
物事 | 10 | 783 Goodwin BurgsApt。 429 Willmsfort、UT 42820-1019 | 9 | 1 | バンガロール | 1 |
アウト | 14 | 981ラロン陸橋スイート361 West Olahaven、FL 46982-7801 | 10 | 1 | バンガロール | 1 |
ニーズ | 16 | 2853 Jonathon Turnpike ケンタッキー州キッツンビル54776 | 4 | 1 | バンガロール | 1 |
オフィス | 3 | 59965メイソンネックアパート985 ネバダ州カリームボロー85535 | 9 | 二 | ムンバイ | 二 |
そして | 6 | 9419 Carmela BurgApt。 687 Aimeebury、SD 32389-4489 | 8 | 二 | ムンバイ | 二 |
落ちる | 9 | 9086マリアムスクエアスイート698 サウスダルス、MT 82861-3079 | 二 | 二 | ムンバイ | 二 |
それ | 12 | 161 Kassulke StravenueApt。 937 ウィリアムソントン、MS 62622 | 7 | 二 | ムンバイ | 二 |
レジリエンス | 15 | 411ルイザミル サウスマキシムフォート、マサチューセッツ州04903 | 8 | 二 | ムンバイ | 二 |
体 | 18 | 03559ニコラスサークルアパート364 West Zettaberg、ID 58592-3447 | 8 | 二 | ムンバイ | 二 |
ヌル | ヌル | ヌル | ヌル | ヌル | シアトル | 3 |
ヌル | ヌル | ヌル | ヌル | ヌル | サンタクララ | 4 |
メモ/ヒント:
- Microsoft SQLのような他のリレーショナルデータベースでは、FULL OUTERJOINと呼ばれる別のタイプのOUTERJOINが見つかる場合があります。これは、INNER結合とOUTER結合の両方の組み合わせに他なりません。つまり、LEFTテーブルとRIGHTテーブルの両方からNULL値を返します。
- 内部結合と外部結合の違いに関する説明と例とともに詳細な説明については、チュートリアルを参照してください。 ここに。
- OUTER JOINクエリでは、読みやすくするために、RIGHT OUTERJOINとLEFTOUTERJOINをそれぞれRIGHTJOINとLEFTJOINとして指定できます。
クロス結合
CROSS JOINは、デカルト積とも呼ばれます。合計mx n行の一致する結合条件に対して結果を返します。ここで、mとnは、JOIN条件に対してテーブル1とテーブル2の一致する行の数です。
Employeeとoffice_locationsの2つのテーブルから結果を取得するためのCROSSJOINのサンプルクエリを見てみましょう。
SELECT * from Employee CROSS JOIN office_locations
返される出力には、両方のテーブルの行の積にすぎない合計80行が含まれます– Employee(20)x office_locations(4)=> 80
その点に注意してください、 CROSS JOINを実行している間は、とにかくm x nの結果が得られるため、JOIN条件を指定する必要はありません。
メモ/ヒント:
CROSS JOINには多くのユースケースが関連付けられていないため、CROSSJOINを使用することはあまりありません。この結合は通常、誰かが2つのテーブルからのデータに対して可能なすべての組み合わせを取得しようとしているときに実行されます。
例えば: あなたが衣服の輸出業者であり、2つのテーブルがあるとします。1つはカラーデータを持ち、もう1つはサイズデータを持ちます。ここでは、在庫を確保するために、両方のテーブルのCROSS JOINを実行して、すべての衣服がすべてのサイズと色の組み合わせで調達されるようにすることを検討できます。
自己結合
SELF JOINは、他のINNERまたはOUTER結合とまったく同じですが、両方のテーブル、つまり、JoiningテーブルとJoinedテーブルが同じであるという例外があります。
同じテーブルの行間の関係を調べたい場合は、通常、SELF結合を使用します。 例えば、 テーブルに従業員IDとスーパーバイザー従業員IDの両方がある場合、従業員の名前に対してマネージャーの名前を調べたい場合は、テーブルをそれ自体に対して結合できます。
SELF JOINの場合、正しいテーブルを参照して結合条件を指定できるように、テーブルエイリアスを使用する必要があることに注意してください。
ここで例を見てみましょう:
SELECT e1.name as Employee1, e2.name as Employee2 from Employee e1 inner join Employee e2 on e1.office_id = e2.office_id where e1.Department_id = e2.Department_id
ここでは、Employeeテーブルをそれ自体に結合して、同じオフィスの場所と部門を持つ従業員の名前を見つけました。
従業員1 | 従業員2 |
---|---|
そして | レジリエンス |
煩わしさ | 煩わしさ |
煩わしさ | アウト |
Oficiis | オフィス |
物事 | 物事 |
物事 | お願いします |
そして | そして |
そして | 体 |
意気込み | 意気込み |
落ちる | 落ちる |
物事 | 物事 |
それ | それ |
アウト | 煩わしさ |
アウト | アウト |
レジリエンス | そして |
レジリエンス | レジリエンス |
レジリエンス | 体 |
ニーズ | ニーズ |
体 | そして |
体 | レジリエンス |
体 | 体 |
お願いします | 物事 |
お願いします | お願いします |
すでに説明したように、SELF JOINはJoiningテーブルとJoinedテーブルを同じものにしているだけなので、SELFJOINをINNERまたはOUTER結合で使用できます。
MySQLはUPDATEとDELETEで結合します
これまで、SELECTステートメントを使用した結合について説明してきました。ただし、結合はMySQLDELETEおよびUPDATEステートメントでも使用できます。
構文はここでも同じです。概念をよりよく理解するために、いくつかの例を見てみましょう。
内部結合による更新
Employeeテーブルの住所を、office_locationsテーブルに存在するオフィスの場所の名前に変更するとします。ここでは、INNER JOINを使用して、office_locationsから都市名を取得し、同じクエリを更新できます。
サンプルクエリ:
UPDATE Employee emp inner join office_locations off_loc on emp.office_id = off_loc.id set emp.address = off_loc.address;
これと同様に、UPDATEは、特定のユースケースに対する要件に応じて、他のタイプの結合でも使用できます。
内部結合で削除
例として、テーブル、EmployeeおよびEmployee_Departmentsを使用します。営業部門に属するすべての従業員レコードを削除し、営業部門のエントリも削除するとします。
FOREIGN KEY制約としてDepartment_idを使用したため、複数のテーブルに対してJOINでDELETEを使用する前に、まずその制約をDROPする必要があります。
まず、EmployeeテーブルのDepartment_idに対して作成された制約の名前を確認しましょう。コマンドを実行するだけで、CREATETABLEコマンドを取得できます。
show create table Employee
次のような出力が得られます。
CREATE TABLE `Employee` ( `name` varchar(100) DEFAULT NULL, `id` int NOT NULL AUTO_INCREMENT, `address` varchar(100) DEFAULT NULL, `Department_id` int DEFAULT NULL, `office_id` int DEFAULT NULL, PRIMARY KEY (`id`), KEY `Department_id` (`Department_id`), CONSTRAINT `Employee_ibfk_1` FOREIGN KEY (`Department_id`) REFERENCES `Employee_Department` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
これで、上記のコマンド「Employee_ibfk_1」からFOREIGN_KEY制約の名前を参照できます。この名前を使用して、次のコマンドを実行することにより、この制約をEmployeeテーブルから削除できます。
alter table Employee drop constraint Employee_ibfk_1
次に、INNERJOINを使用してDELETEコマンドを実行してみましょう。
Windows10用の最高の無料ビデオコンバーター
delete emp_dept, emp from Employee emp inner join Employee_Department emp_dept on emp.Department_id = emp_dept.id where emp.Department_id = 9
このコマンドの出力はnoになります。削除された行の数(これにより、上記のJOINクエリで参照されている両方のテーブルから行が正常に削除されます)
よくある質問
Q#1)MySQLにはいくつのタイプの結合がありますか?
回答: MySQLは主に3種類の結合をサポートしています。 これらは:
- 内部結合
- 外部結合–左外部結合と右外部結合
- クロス結合
Q#2)結合は2つのテーブルにのみ使用できますか?
回答: 結合は、2つ以上のテーブルに適用できます。ほとんどの場合、結合は2つのテーブルに使用されます。
以下は、3つのテーブルを使用した内部結合の例です。
select Employee.name as emp_name, Employee_Department.name as dept_name, office_locations.address as office_location from Employee inner join Employee_Department on Employee.Department_id = Employee_Department.id inner join office_locations on Employee.office_id = office_locations.id
上記のクエリの出力:
emp_name | dept_name | オフィスの場所 |
---|---|---|
アウト | 管理 | バンガロール |
煩わしさ | 管理 | バンガロール |
物事 | セキュリティ | バンガロール |
そして | 契約スタッフ | ムンバイ |
意気込み | 契約スタッフ | バンガロール |
落ちる | 人事 | ムンバイ |
それ | サポート | ムンバイ |
レジリエンス | 契約スタッフ | ムンバイ |
ニーズ | 会計 | バンガロール |
体 | 契約スタッフ | ムンバイ |
お願いします | セキュリティ | バンガロール |
Q#3)結合でテーブルエイリアスを使用するにはどうすればよいですか?
回答: エイリアスは、クエリ内で参照されるテーブルの一時的な名前を付ける方法です。 JOINクエリは複雑な場合があり、クエリを読みやすくし、各列参照のテーブル名を参照しないようにするため、名前をエイリアスで短縮することができます。
INNER JOINクエリを記述して、すべての従業員名と部門名のデータをそれぞれテーブルEmployeeとEmployee_Departmentsからフェッチしてみましょう。
select emp.name as emp_name, Department.name as dept_name from Employee emp inner join Employee_Department as Department on emp.Department_id = Department.id
上記のクエリでは、Employeeテーブルをempとして、Employee_DepartmentテーブルをDepartmentとしてエイリアスし、そのエイリアスを使用して列名と結合条件を参照していることがわかります。
Q#4)CROSS JOINとは何ですか?
回答: CROSS JOINは、ユーザーが結合されるテーブルのデカルト積をフェッチするタイプの結合です。
CROSSJOINの結果はmx nです。ここで、mは最初のテーブルの一致する行の数であり、nは2番目のテーブルの一致する行の数です。
Q#5)MySQLで完全外部結合を取得する方法
回答: MySQLは、Microsoft SQLのような他のデータベースとは異なり、個別の結合タイプとしてFULL OUTERJOINを提供しません。ただし、FULL OUTER JOINがフェッチしたような結果を取得するには、LEFT OUTERJOINとRIGHTOUTERJOINの結果を組み合わせることができます。
たとえば、従業員と部門の詳細を取得して、左右の外部結合に結合を適用できます。
推奨読書= >> MySQLユニオンオペレーター
結論
このチュートリアルでは、MySQLで使用できるさまざまなタイプの結合について学習しました。
INNER、OUTER、CROSS、およびSELF結合について説明し、JOINクエリをUPDATEおよびDELETEステートメントとともに使用して、2つ以上のテーブル間の結合データに対して効率的で最適化されたクエリを作成する方法についても説明しました。
JOINSは、最も基本的に使用されるクエリの1つであり、SQLベースのデータベースを使用または学習する人は、SQL結合を完全に理解している必要があります。