MySQLの結合とは何ですか?
MySQL SELECTを使用して、一度に1つのテーブルから情報を取得できますが、1つのテーブルだけですべての質問に答えることはできません。したがって、上記の目的、つまり複数のテーブルに格納されている情報を利用するために、結合操作を使用できます。
基本的に、MySQL結合は、2つ以上のテーブル間の共通列の値に基づいて、2つ以上のテーブルのデータをリンクする方法であり、その結果、新しい一時テーブルが作成されます。つまり、MySQL結合を使用すると、新しい一時テーブル内の2つ以上の論理的に関連するテーブルからレコードを取得できると言えます。新しい一時テーブルは、2つのテーブルが共有する列に基づいて作成されます。これは、意味のある比較列を表します。
一般的な値は通常、結合される参加テーブルの両方に表示される同じ列名とデータ型です。これらの列は、結合キーまたは共通キーと呼ばれます。
MySQLは次のタイプの結合をサポートしています:
クロスジョイン
実際、クロスジョインはジョインの基本的な形式です。 2つのテーブルがある場合、table1の各行を取得し、それをtable2の各行に追加します。したがって、table1に3行、table2に2行がある場合、これらのテーブルを相互結合した後、合計6行になります。これを理解するために、次のデータを持つ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)
ここで、以下のクエリは、上記のテーブル間でCROSSJOINを実行します。
mysql> Select tbl_1.id, tbl_2.id FROM tbl_1 CROSS 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)
内部参加または エクイジョイン
内部結合を形成するには、join-predicateと呼ばれる特定の条件を指定する必要があります。実際には、内部結合または等結合では、2つの結合されたテーブルの行が一致する列値を持つ必要があります。それを理解するために、次のクエリは「tbl_1」と「tbl_2」という名前のテーブルを内部結合します。
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 INNER JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+----+ | id | id | +----+----+ | 4 | A | +----+----+ 1 row in set (0.00 sec)
結果セットは、列名がtbl_1のid =4とtbl_2のid=‘A’で同じ値を持っていることを示しています。
左参加
内部結合で必要だったように、左結合にも結合述語が必要です。唯一の違いは、LEFT結合を使用して2つのテーブルを結合するときに、左テーブルと右テーブルの概念が導入されることです。これは、join-predicateを満たす行と、join-predicateを満たさない行を含む、左側のテーブルのすべての行を返します。結合述部と一致しない行の場合、結果セットの右側のテーブルの列にNULLが表示されます。これを理解するには、テーブルtbl_1とtbl_2を使用してクエリを実行すると、左結合が実行されます。
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+------+ | id | id | +----+------+ | 1 | NULL | | 2 | NULL | | 3 | NULL | | 4 | A | +----+------+ 4 rows in set (0.02 sec)
右参加
テーブルの扱いが逆になることを除いて、LEFT結合に似ています。右結合を使用すると、右のテーブルのすべての行が結果セットに表示されます。左側のテーブルに一致する行がない右側のテーブルの行の場合、左側のテーブルの列にNULLが表示されます。それを理解するには、テーブルtbl_1とtbl_2を使用して次のクエリを実行し、右結合を実行します。
mysql> SELECT tbl_1.id,tbl_2.id -> FROM tbl_1 RIGHT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +------+----+ | id | id | +------+----+ | 4 | A | | NULL | B | | NULL | C | | NULL | D | +------+----+ 4 rows in set (0.00 sec)
-
MySQLがサポートするプラットフォームとは何ですか?
MySQLがサポートするさまざまなプラットフォームを見てみましょう。 MySQLは仮想環境にデプロイできます。 下記のオペレーティングシステムをサポートしています- Oracle Linux / Red Hat / CentOS Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS 8、アーキテクチャはx86_64、ARM 64 Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7、そのアーキテクチャはARM 64 Oracle Linux 7 / Red H
-
C#での反射とは何ですか?
リフレクションオブジェクトは、実行時にタイプ情報を取得するために使用されます。実行中のプログラムのメタデータへのアクセスを提供するクラスは、System.Reflection名前空間にあります。 システムのMemberInfoオブジェクト。クラスに関連付けられた属性を検出するには、リフレクションクラスを初期化する必要があります。 以下の例では、ターゲットクラスのオブジェクトを設定しました- System.Reflection.MemberInfo info = typeof(MyClass); これが例です- 例 using System; using System.Reflection