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

MySQL LEFT JOINとは何ですか?それに対するMySQLクエリをどのように記述できますか?


LEFT結合を使用して2つのテーブルを結合する際に、左テーブルと右テーブルの概念が導入され、結合述語も必要になります。これは、join-predicateを満たす行と、join-predicateを満たさない行を含む、左側のテーブルのすべての行を返します。

join-predicateに一致しない行の場合、結果セットの右側のテーブルの列にNULLが表示されます。それを理解するために、次のデータを持つ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)

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

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)

  1. MySQLで複数の行と左パッドの値を更新するにはどうすればよいですか?

    LPAD()関数を使用して値を左に埋め込みます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Number int    -> ); Query OK, 0 rows affected (2.26 sec 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(857786); Query OK, 1 row affected (0.26 sec)

  2. 有効なMySQLクエリを記述し、カスタム変数で更新するにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable2027    -> (    -> UserId int    -> ); Query OK, 0 rows affected (0.65 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2027 values(10); Query OK, 1 row affected (0.18 sec) mysql> insert