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

Làm thế nào để lấy tên người dùng bằng cách sử dụng ID từ một bảng khác trong cơ sở dữ liệu MySQL?

Để lấy tên người dùng bằng ID từ hai bảng, bạn cần sử dụng JOIN và tham gia các bảng.

Hãy để chúng tôi tạo một bảng -

Ví dụ

mysql> create table demo77
   -> (
   -> userid int not null primary key,
   -> username varchar(20)
   -> );
Query OK, 0 rows affected (2.63

Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh insert -

Ví dụ

mysql> insert into demo77 values(1,'John');
Query OK, 1 row affected (0.19

mysql> insert into demo77 values(2,'Bob');
Query OK, 1 row affected (0.36

Hiển thị các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

Ví dụ

mysql> select *from demo77;

Điều này sẽ tạo ra kết quả sau -

Đầu ra

+--------+----------+

| userid | username |

+--------+----------+

|      1 | John     |

|      2 | Bob      |

|      3 | Mike     |

+--------+----------+

Sau đây là truy vấn để tạo bảng thứ hai -

Ví dụ

mysql> create table demo78
   -> (
   -> id int not null primary key,
   -> countryname varchar(20),
   -> constraint fk_id foreign key(id) references demo77(userid)
   -> );
Query OK, 0 rows affected (0.75

Chèn một số bản ghi vào bảng thứ hai với sự trợ giúp của lệnh insert -

Ví dụ

mysql> insert into demo78 values(1,'US');
Query OK, 1 row affected (0.14

mysql> insert into demo78 values(2,'AUS');
Query OK, 1 row affected (0.15

Hiển thị các bản ghi từ bảng thứ hai bằng cách sử dụng câu lệnh select -

Ví dụ

mysql> select *from demo78
   -> ;

Điều này sẽ tạo ra kết quả sau -

Đầu ra

+----+-------------+

| id | countryname |

+----+-------------+

|  1 | US          |

|  2 | AUS         |

+----+-------------+

2 rows in set (0.00 sec)

Sau đây là truy vấn để lấy tên người dùng bằng cách sử dụng id bằng cách kết hợp cả hai bảng -

Ví dụ

mysql> select username from demo77
   -> join demo78
   -> on demo77.userid=demo78.id;

Điều này sẽ tạo ra kết quả sau -

Đầu ra

+----------+

| username |

+----------+

| John     |

| Bob      |

+----------+

2 rows in set (0.05 sec)