この単純なチュートリアルでSQL結合を理解し、私がしたように失敗しないでください


この記事はもともと公開されていた.

https://www.blog.duomly.com/sql-join-with-examples-tutorial/ 導入


私は、私がすでに持っていたSQLについてのより深い知識を必要としたとき、残念なことに、その時間がなかったのを覚えています.
それは数年前、私はクールな役割を取得したいときに、素敵な会社とクールな給料で、単純なフロントエンドのエンジニアの役割だったが、SQLの知識を持っていた.
私はいくつかのSQLの知識を持っていた、少なくとも単純なクエリを行うように、単純なレベルでそれを動作するように.
今回の技術リクルーターは、SQL結合について、より正確に、内部結合、完全結合、左結合、および適切な結合の違いについて尋ねました.私はそれを知りませんでした、そして、この単純な質問は私に給料交渉の上でより悪い位置に私を動かしました.
私はそれについて学ぶことを決めました.そして、今日、私はあなたに私が持っていたより良い位置を持つために、あなたに若干の基本を与えます.
閉じるこの動画はお気に入りから削除されています.

SQL結合とは


SQL joinは、2つの異なるSQLテーブルから要素(データ)を連結する構造化クエリ言語メソッドです.
たとえば、あなたが靴をオンラインで販売し、お客様の足に合うすべての製品を表示したいと思います.
あなたのオンラインストアの2つのテーブルを持って、最初に列“id”、“名前”、“電子メール”、“サイズ”と“ユーザー”テーブルです.
SQLエディタで入力することで作成できます.
CREATE TABLE Users (
  userId int,
  name varchar(255),
  email varchar(255), 
  footSize int
);
次に、値をテーブルに追加します.
INSERT INTO Users
VALUES 
  (1, 'Radek', '[email protected]', 12),
  (2, 'Mark', '[email protected]', 9),
  (3, 'Bruce', '[email protected]', 13);
結果:

つ目のテーブルは“靴”という名前のテーブルで、“productID”、“model”、“brand”、“size”という列があります.
SQLエディタでそのコードを入力して作成します.
CREATE TABLE Shoes (
  shoeId int,
  model varchar(255),
  brand varchar(255), 
  shoeSize int
);
次に、いくつかの製品を追加しましょう.
INSERT INTO Shoes
VALUES 
  (1, 'Shoe model 1', 'Shoe brand', 12),
  (2, 'Shoe model 2', 'Shoe brand', 9),
  (3, 'Shoe model 3', 'Shoe brand', 12),
  (4, 'Shoe model 4', 'Shoe brand', 8);

今、我々は我々のユーザーの足に合う靴を見たいです.
そのためには以下のように結合メソッドを行うことができます.
SELECT shoeId, model, brand, shoeSize FROM Users user
JOIN Shoes shoe ON user.footSize=shoe.shoeSize
where user.name = 'Radek'
結果:

SQL結合構文


基本的に、SQL結合構文は次のようになります.
SELECT columns 
FROM firstTable JOIN secondTable
ON columnFromFirstTable = columnFromSecondTable
WHERE condition
もちろん、それはあらゆるケースで異なっています、しかし、主なテンプレートはそれに類似しているように見えます、そして、あなたはこれに基づいてあなた自身の質問ベースを構築することができます.

SQL結合型


つの主要なタイプのSQL結合メソッドがあります.

インナー結合


最初の1つは、最初と2番目のテーブルから条件に合う行を選択する内部結合メソッドです.

レフト・ジョイント


つ目のテーブルは、2番目のテーブルからの行に適した行を持つ最初のテーブルからすべての行を選択する左結合メソッドです.

適切な結合


つ目のテーブルは、最初のテーブルから行を条件付けて2番目のテーブルからすべての行を選択する右結合メソッドです.

完全加入


最後の1つは、条件が合うかどうかを2番目のテーブルと最初のテーブルからすべての行を選択する完全な結合方法です.

インナー結合の例


この場合、我々は我々のユーザーの関心に合う靴だけを示したいです.
SELECT shoeId, model, brand, shoeSize FROM Users user
INNER JOIN Shoes shoe ON user.footSize=shoe.shoeSize
where user.name = 'Radek'
結果:

我々が見ることができるように、dBはshoesizeが我々のユーザーのfootsizeフィールドに等しいアイテムだけを私たちに返しました.

左側の結合例


我々は2つのテーブルに参加することができますし、彼のための靴がない場合は条件を渡すことなく、すべてのユーザーを表示します.
SELECT userId, shoeId, model, brand, shoeSize FROM Users user
LEFT JOIN Shoes shoe ON user.footSize=shoe.shoeSize
結果:

この場合、DBはすべてのユーザーに値を返しましたが、この1つの顧客のための製品ではなかった行の値はNULLです.

右結合例


今、我々はすべての靴を見ることができます、そして、我々が我々の靴に合うことができるどんなユーザーでもないならば、それは「ユーザーID」セクションでちょうどNULLです.
SELECT userId, shoeId, model, brand, shoeSize FROM users
RIGHT JOIN shoes ON users.footSize=shoes.shoeSize
結果:

ここでは、DBがすべての行を返したことに気づくことができますが、靴の正しい顧客ではなかったユーザーの空の列です.

完全な結合例


ここでは、両方のテーブルに参加し、任意の条件を渡すことなく、すべてのレコードを示します.
SELECT userId, shoeId, model, brand, shoeSize FROM users
FULL JOIN shoes ON users.footSize=shoes.shoeSize
結果:

ここでは、我々はすべてを持って見ることができる、靴が潜在的な所有者やユーザーが購入靴の可能性がある場合は問題ではない.

結論


SQL Joinメソッドについてのいくつかのマイナーな基本を説明しました.
ここでSQL結合の仕組み、SQL結合型の違い、およびそれらを適用するときの知識を得る.
私はあなたが必要なときにそれらを認識できるようになることを願って、それはあなたからいくつかの利点を得るのを助ける.

読書ありがとう.
Duomlyからのプログラミングコース