Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để sử dụng Tham gia thẳng trong MySQL?

Phép nối thẳng trong MySQL hoạt động giống như phép nối bên trong hoặc phép nối. Điều này có nghĩa là nó chỉ trả về các hàng trùng khớp. Đầu tiên, chúng ta cần hiểu Tham gia thẳng trong MySQL. Để làm được điều đó, chúng ta cần tạo hai bảng và liên kết cả hai bảng với các ràng buộc khóa ngoại.

Đây là bảng đầu tiên

mysql> CREATE table ForeignTableDemo
-> (
-> Id int,
-> Name varchar(100),
-> FK int
-> );
Query OK, 0 rows affected (0.47 sec)

Đây là bảng thứ hai -

mysql> CREATE table PrimaryTableDemo
-> (
-> FK int,
-> Address varchar(100),
-> primary key(FK)
-> );
Query OK, 0 rows affected (0.47 sec)

Sau đó, chúng tôi sẽ thêm các ràng buộc -

mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references
PrimaryTableDemo(FK);
Query OK, 0 rows affected (1.54 sec)
Records: 0 Duplicates: 0 Warnings: 0

Bây giờ, hãy thêm các bản ghi vào bảng thứ hai -

mysql> INSERT into PrimaryTableDemo values(1,'US');
Query OK, 1 row affected (0.10 sec)

mysql> INSERT into PrimaryTableDemo values(2,'UK');
Query OK, 1 row affected (0.14 sec)

mysql> INSERT into PrimaryTableDemo values(3,'Unknown');
Query OK, 1 row affected (0.08 sec)

Hiển thị bản ghi

mysql> SELECT * from PrimaryTableDemo;

Sau đây là kết quả -

+----+---------+
| FK | Address |
+----+---------+
| 1  | US      |
| 2  | UK      |
| 3 | Unknown  |
+----+---------+
3 rows in set (0.00 sec)

Bây giờ, hãy thêm các bản ghi vào bảng đầu tiên

mysql> INSERT into ForeignTableDemo values (1,'John',1);
Query OK, 1 row affected (0.20 sec)

mysql> INSERT into ForeignTableDemo values (2,'Bob',2);
Query OK, 1 row affected (0.27 sec)

Hiển thị tất cả các bản ghi với sự trợ giúp của câu lệnh SELECT -

mysql> SELECT * from ForeignTableDemo;

Sau đây là kết quả

+------+------+------+
| Id   | Name | FK   |
+------+------+------+
| 1    | John | 1    |
| 2    | Bob  | 2    |
+------+------+------+
2 rows in set (0.00 sec)

Truy vấn cho phép nối thẳng như sau, chỉ hiển thị các hàng phù hợp -

mysql>SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address
-> from ForeignTableDemo
-> Straight_join PrimaryTableDemo
-> on ForeignTableDemo.FK=PrimaryTableDemo.FK;

Sau đây là kết quả -

+------+------+---------+
| Id   | Name | Address |
+------+------+---------+
| 1    | John | US      |
| 2    | Bob  | UK      |
+------+------+---------+
2 rows in set (0.00 sec)