MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL CROSSJOINとINNERJOINをどのように区別できますか?


MySQL CROSSJOINとINNERJOINは、join-predicate、つまり指定された条件に基づいてのみ区別できます。 INNER JOINのクエリを作成するときに条件を指定する必要がありますが、対照的に、CROSSJOINのクエリを作成するときに条件を指定する必要はありません。それを理解するために、次のデータを持つtbl_1とtbl_2という名前の2つのテーブルの例を取り上げています-

mysql> Select * from tbl_1;
+----+--------+
| Id | Name |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Raman  |
| 4  | Aarav  |
+----+--------+
4 rows in set (0.00 sec)

mysql> Select * from tbl_2;
+----+---------+
| Id | Name    |
+----+---------+
| A  | Aarav   |
| B  | Mohan   |
| C  | Jai     |
| D  | Harshit |
+----+---------+
4 rows in set (0.00 sec)

これで、INNERJOINのクエリは次のようになります-

mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+----+----+
| id | id |
+----+----+
| 4  | A  |
+----+----+
1 row in set (0.00 sec)

ここで、条件を指定せずに上記のクエリを作成すると、CROSSJOINになります。条件なしのクエリは次のとおりです-

mysql> Select tbl_1.id, tbl_2.id FROM tbl_1 JOIN tbl_2;
+----+----+
| id | id |
+----+----+
| 1  | A  |
| 2  | A  |
| 3  | A  |
| 4  | A  |
| 1  | B  |
| 2  | B  |
| 3  | B  |
| 4  | B  |
| 1  | C  |
| 2  | C  |
| 3  | C  |
| 4  | C  |
| 1  | D  |
| 2  | D  |
| 3  | D  |
| 4  | D  |
+----+----+
16 rows in set (0.00 sec)

  1. SQLの内部結合と外部結合の違い

    この投稿では、SQLの内部結合と外部結合の違いを理解します。 内部参加 使用される句は「INNERJOIN」と「JOIN」です。 2つ以上のテーブルの結合されたタプルを返します。 共通の属性がない場合、結果は空になります。 タプルの数が多い場合、「INNER JOIN」は、「OUTERJOIN」と比較してすばやく機能します。 特定の属性に関する詳細情報が必要な場合に使用されます。 「JOIN」と「INNERJOIN」は同じように機能します。 構文 SELECT * FROM table_1 INNER JOIN / JOIN table_2 ON tab

  2. PythonでMySQLを使用して、2つのテーブルで内部結合を実行するにはどうすればよいですか?

    SQLの2つのテーブルは、それらの間の共通の列に基づいて、または特定の条件に基づいて結合できます。 2つのSQLテーブルを結合するために使用できるJOINにはさまざまなタイプがあります。 ここでは、2つのテーブルの内部結合について説明します。 JOINとINNERJOINはどちらも同じように機能します。 INNER JOINは、あるテーブルの各行を他のテーブルのすべての行と照合し、共通の列があるか、指定された条件を満たす両方のテーブルの行を結合できるようにします。 2つのテーブル間で結合を適用する場合、テーブルが結合される条件を指定する必要があります。 構文 SELECT column1