Làm cách nào để trích xuất dữ liệu từ hai bảng?

Mệnh đề

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
1 được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên cột liên quan giữa chúng

Hãy xem xét một lựa chọn từ bảng "Đơn hàng"

OrderIDCustomerIDOrderDate1030821996-09-1810309371996-09-1910310771996-09-20

Sau đó, hãy xem một lựa chọn từ bảng "Khách hàng"

Khách hàngIDKhách hàngTênLiên hệTênQuốc gia1Alfreds FutterkisteMaria AndersĐức2Ana Trujillo Emparedados y heladosAna TrujilloMexico3Antonio Moreno TaqueríaAntonio MorenoMexico

Lưu ý rằng cột "CustomerID" trong bảng "Orders" đề cập đến "CustomerID" trong bảng "Customers". Mối quan hệ giữa 2 bảng trên là cột "CustomerID"

Sau đó, chúng ta có thể tạo câu lệnh SQL sau [có chứa

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
2], chọn các bản ghi có giá trị khớp trong cả hai bảng

Ví dụ

CHỌN Đơn đặt hàng. OrderID, khách hàng. Tên khách hàng, đơn đặt hàng. OrderDate
TỪ Đơn đặt hàng
INNER THAM GIA KHÁCH HÀNG TRÊN Đơn đặt hàng. CustomerID=Khách hàng. ID khách hàng;

Tự mình thử »

và nó sẽ tạo ra một cái gì đó như thế này

OrderIDCustomerNameOrderDate10308Ana Trujillo Emparedados y helados9/18/199610365Antonio Moreno Taquería11/27/199610383Xung quanh Horn12/16/199610355Xung quanh Horn15/11/199610278Berglunds snabbköp8/12/1996

Các loại THAM GIA SQL khác nhau

Dưới đây là các loại THAM GIA khác nhau trong SQL

  • mysql> create table cars [id int[3] not null auto_increment primary key, 
        -> color int[3], brand int[3], model int[3]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from cars;
    +-------+--------+------+-----+---------+----------------+
    | Field | Type   | Null | Key | Default | Extra          |
    +-------+--------+------+-----+---------+----------------+
    | id    | int[3] | NO   | PRI | NULL    | auto_increment |
    | color | int[3] | YES  |     | NULL    |                |
    | brand | int[3] | YES  |     | NULL    |                |
    | model | int[3] | YES  |     | NULL    |                |
    +-------+--------+------+-----+---------+----------------+
    4 rows in set [0.00 sec]
    
    mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
        -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
    Query OK, 10 rows affected [0.00 sec]
    Records: 10  Duplicates: 0  Warnings: 0
    
    mysql> select * from cars;
    +----+-------+-------+-------+
    | id | color | brand | model |
    +----+-------+-------+-------+
    |  1 |     1 |     2 |     1 |
    |  2 |     3 |     1 |     2 |
    |  3 |     5 |     3 |     1 |
    |  4 |     4 |     4 |     2 |
    |  5 |     2 |     2 |     3 |
    |  6 |     3 |     5 |     4 |
    |  7 |     4 |     1 |     3 |
    |  8 |     2 |     2 |     1 |
    |  9 |     5 |     2 |     3 |
    | 10 |     4 |     5 |     1 |
    +----+-------+-------+-------+
    10 rows in set [0.00 sec]
    
    3. Trả về các bản ghi có giá trị khớp trong cả hai bảng
  • mysql> create table cars [id int[3] not null auto_increment primary key, 
        -> color int[3], brand int[3], model int[3]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from cars;
    +-------+--------+------+-----+---------+----------------+
    | Field | Type   | Null | Key | Default | Extra          |
    +-------+--------+------+-----+---------+----------------+
    | id    | int[3] | NO   | PRI | NULL    | auto_increment |
    | color | int[3] | YES  |     | NULL    |                |
    | brand | int[3] | YES  |     | NULL    |                |
    | model | int[3] | YES  |     | NULL    |                |
    +-------+--------+------+-----+---------+----------------+
    4 rows in set [0.00 sec]
    
    mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
        -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
    Query OK, 10 rows affected [0.00 sec]
    Records: 10  Duplicates: 0  Warnings: 0
    
    mysql> select * from cars;
    +----+-------+-------+-------+
    | id | color | brand | model |
    +----+-------+-------+-------+
    |  1 |     1 |     2 |     1 |
    |  2 |     3 |     1 |     2 |
    |  3 |     5 |     3 |     1 |
    |  4 |     4 |     4 |     2 |
    |  5 |     2 |     2 |     3 |
    |  6 |     3 |     5 |     4 |
    |  7 |     4 |     1 |     3 |
    |  8 |     2 |     2 |     1 |
    |  9 |     5 |     2 |     3 |
    | 10 |     4 |     5 |     1 |
    +----+-------+-------+-------+
    10 rows in set [0.00 sec]
    
    4. Trả về tất cả các bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải
  • mysql> create table cars [id int[3] not null auto_increment primary key, 
        -> color int[3], brand int[3], model int[3]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from cars;
    +-------+--------+------+-----+---------+----------------+
    | Field | Type   | Null | Key | Default | Extra          |
    +-------+--------+------+-----+---------+----------------+
    | id    | int[3] | NO   | PRI | NULL    | auto_increment |
    | color | int[3] | YES  |     | NULL    |                |
    | brand | int[3] | YES  |     | NULL    |                |
    | model | int[3] | YES  |     | NULL    |                |
    +-------+--------+------+-----+---------+----------------+
    4 rows in set [0.00 sec]
    
    mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
        -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
    Query OK, 10 rows affected [0.00 sec]
    Records: 10  Duplicates: 0  Warnings: 0
    
    mysql> select * from cars;
    +----+-------+-------+-------+
    | id | color | brand | model |
    +----+-------+-------+-------+
    |  1 |     1 |     2 |     1 |
    |  2 |     3 |     1 |     2 |
    |  3 |     5 |     3 |     1 |
    |  4 |     4 |     4 |     2 |
    |  5 |     2 |     2 |     3 |
    |  6 |     3 |     5 |     4 |
    |  7 |     4 |     1 |     3 |
    |  8 |     2 |     2 |     1 |
    |  9 |     5 |     2 |     3 |
    | 10 |     4 |     5 |     1 |
    +----+-------+-------+-------+
    10 rows in set [0.00 sec]
    
    5. Trả về tất cả các bản ghi từ bảng bên phải và các bản ghi phù hợp từ bảng bên trái
  • mysql> create table cars [id int[3] not null auto_increment primary key, 
        -> color int[3], brand int[3], model int[3]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from cars;
    +-------+--------+------+-----+---------+----------------+
    | Field | Type   | Null | Key | Default | Extra          |
    +-------+--------+------+-----+---------+----------------+
    | id    | int[3] | NO   | PRI | NULL    | auto_increment |
    | color | int[3] | YES  |     | NULL    |                |
    | brand | int[3] | YES  |     | NULL    |                |
    | model | int[3] | YES  |     | NULL    |                |
    +-------+--------+------+-----+---------+----------------+
    4 rows in set [0.00 sec]
    
    mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
        -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
    Query OK, 10 rows affected [0.00 sec]
    Records: 10  Duplicates: 0  Warnings: 0
    
    mysql> select * from cars;
    +----+-------+-------+-------+
    | id | color | brand | model |
    +----+-------+-------+-------+
    |  1 |     1 |     2 |     1 |
    |  2 |     3 |     1 |     2 |
    |  3 |     5 |     3 |     1 |
    |  4 |     4 |     4 |     2 |
    |  5 |     2 |     2 |     3 |
    |  6 |     3 |     5 |     4 |
    |  7 |     4 |     1 |     3 |
    |  8 |     2 |     2 |     1 |
    |  9 |     5 |     2 |     3 |
    | 10 |     4 |     5 |     1 |
    +----+-------+-------+-------+
    10 rows in set [0.00 sec]
    
    6. Trả về tất cả các bản ghi khi có sự trùng khớp trong bảng bên trái hoặc bên phải

 
 
 

Kiểm tra bản thân với các bài tập

Tập thể dục

Chèn các phần còn thiếu trong mệnh đề

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
1 để nối hai bảng
mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
8 và
mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
9, sử dụng trường
mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
10 trong cả hai bảng làm mối quan hệ giữa hai bảng

Có một số cách để lấy dữ liệu từ nhiều bảng trong cơ sở dữ liệu. Trong câu trả lời này, tôi sẽ sử dụng cú pháp nối ANSI-92. Điều này có thể khác với một số hướng dẫn khác sử dụng cú pháp ANSI-89 cũ hơn [và nếu bạn đã quen với 89, có vẻ kém trực quan hơn nhiều - nhưng tất cả những gì tôi có thể nói là thử nó] vì nó dễ dàng hơn nhiều . Tại sao lại sử dụng nó? . Việc đọc các truy vấn được viết bởi những người khác bằng cú pháp này sẽ dễ dàng hơn

Tôi cũng sẽ sử dụng khái niệm về một bãi đỗ xe nhỏ có cơ sở dữ liệu để theo dõi những chiếc xe nào có sẵn. Chủ sở hữu đã thuê bạn làm nhân viên IT Máy tính của anh ta và hy vọng bạn có thể cung cấp cho anh ta dữ liệu mà anh ta yêu cầu ngay lập tức

Tôi đã tạo một số bảng tra cứu sẽ được sử dụng bởi bảng cuối cùng. Điều này sẽ cung cấp cho chúng tôi một mô hình hợp lý để làm việc từ. Để bắt đầu, tôi sẽ chạy các truy vấn của mình đối với cơ sở dữ liệu mẫu có cấu trúc sau. Tôi sẽ cố gắng nghĩ về những sai lầm phổ biến thường mắc phải khi bắt đầu và giải thích điều gì sai với chúng - cũng như tất nhiên là chỉ ra cách sửa chúng

Bảng đầu tiên chỉ đơn giản là liệt kê màu sắc để chúng ta biết trong bãi xe mình có những màu gì

mysql> create table colors[id int[3] not null auto_increment primary key, 
    -> color varchar[15], paint varchar[10]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from colors;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| color | varchar[15] | YES  |     | NULL    |                |
| paint | varchar[10] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set [0.01 sec]

mysql> insert into colors [color, paint] values ['Red', 'Metallic'], 
    -> ['Green', 'Gloss'], ['Blue', 'Metallic'], 
    -> ['White' 'Gloss'], ['Black' 'Gloss'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from colors;
+----+-------+----------+
| id | color | paint    |
+----+-------+----------+
|  1 | Red   | Metallic |
|  2 | Green | Gloss    |
|  3 | Blue  | Metallic |
|  4 | White | Gloss    |
|  5 | Black | Gloss    |
+----+-------+----------+
5 rows in set [0.00 sec]

Bảng nhãn hiệu xác định các nhãn hiệu khác nhau của những chiếc xe mà caryard có thể bán

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]

Bảng mô hình sẽ bao gồm các loại ô tô khác nhau, việc này sẽ đơn giản hơn nếu sử dụng các loại ô tô khác nhau thay vì mô hình ô tô thực tế

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]

Và cuối cùng, để kết nối tất cả những chiếc bàn khác này, chiếc bàn gắn kết mọi thứ lại với nhau. Trường ID thực sự là số lô duy nhất được sử dụng để xác định ô tô

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]

Điều này sẽ cung cấp cho chúng tôi đủ dữ liệu [tôi hy vọng] để bao gồm các ví dụ bên dưới về các loại liên kết khác nhau và cũng cung cấp đủ dữ liệu để khiến chúng trở nên đáng giá

Vì vậy, đi sâu vào vấn đề, ông chủ muốn biết ID của tất cả những chiếc xe thể thao mà ông ấy có

Đây là một phép nối hai bảng đơn giản. Chúng tôi có một bảng xác định mô hình và bảng với cổ phiếu có sẵn trong đó. Như bạn có thể thấy, dữ liệu trong cột

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
6 của bảng
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
7 liên quan đến cột
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
8 của bảng
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
7 mà chúng ta có. Bây giờ, chúng tôi biết rằng bảng mô hình có ID là
mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
0 cho
mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
1, vì vậy hãy viết phép nối

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
0

Vì vậy, truy vấn này có vẻ tốt phải không?

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
1

Ôi không. Một lỗi trong truy vấn đầu tiên của chúng tôi. Vâng, và nó là một quả mận. Bạn thấy đấy, truy vấn thực sự có các cột phù hợp, nhưng một số trong số chúng tồn tại trong cả hai bảng, vì vậy cơ sở dữ liệu bị nhầm lẫn về cột thực sự mà chúng tôi muốn nói và ở đâu. Có hai giải pháp để giải quyết vấn đề này. Cách đầu tiên rất hay và đơn giản, chúng ta có thể sử dụng

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
2 để nói cho cơ sở dữ liệu biết chính xác ý của chúng ta, như thế này

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
3

Cái khác có lẽ thường được sử dụng hơn và được gọi là bí danh bảng. Các bảng trong ví dụ này có các tên đơn giản và ngắn gọn, nhưng gõ một cái gì đó như

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
3 có thể sẽ nhanh cũ, vì vậy một cách đơn giản là đặt tên cho bảng như thế này

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
5

Bây giờ, quay lại yêu cầu. Như bạn có thể thấy, chúng tôi có thông tin chúng tôi cần, nhưng chúng tôi cũng có thông tin không được yêu cầu, vì vậy chúng tôi cần đưa mệnh đề where vào câu lệnh để chỉ nhận những chiếc xe Thể thao như được yêu cầu. Vì tôi thích phương pháp bí danh bảng hơn là sử dụng lặp đi lặp lại các tên bảng, nên tôi sẽ sử dụng phương pháp này từ thời điểm này trở đi

Rõ ràng, chúng ta cần thêm mệnh đề where vào truy vấn của mình. Chúng tôi có thể xác định Xe thể thao bằng cách sử dụng

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
4 hoặc
mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
5. Vì ID được lập chỉ mục và khóa chính [và nó ít phải gõ hơn], hãy sử dụng nó trong truy vấn của chúng tôi

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
8

Chơi lô tô. sếp vui. Tất nhiên, là sếp mà chưa bao giờ hài lòng với cái mình yêu cầu, nó xem thông tin rồi bảo mình cũng muốn màu

Được rồi, vì vậy chúng tôi đã viết một phần tốt của truy vấn, nhưng chúng tôi cần sử dụng bảng thứ ba là màu sắc. Bây giờ, bảng thông tin chính của chúng tôi

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
7 lưu trữ ID màu xe và liên kết này trở lại cột ID màu. Vì vậy, theo cách tương tự như ban đầu, chúng ta có thể tham gia một bảng thứ ba

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
0

Chết tiệt, mặc dù bảng đã được nối chính xác và các cột có liên quan đã được liên kết, nhưng chúng tôi đã quên lấy thông tin thực tế từ bảng mới mà chúng tôi vừa liên kết

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
0

Phải, đó là ông chủ ra khỏi lưng của chúng tôi trong giây lát. Bây giờ, để giải thích một số điều này chi tiết hơn một chút. Như bạn có thể thấy, mệnh đề

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
7 trong câu lệnh của chúng tôi liên kết bảng chính của chúng tôi [tôi thường sử dụng bảng chứa thông tin hơn là bảng tra cứu hoặc bảng thứ nguyên. Truy vấn sẽ hoạt động tốt với tất cả các bảng được chuyển đổi xung quanh, nhưng sẽ không có ý nghĩa gì khi chúng ta quay lại truy vấn này để đọc nó sau một vài tháng nữa, vì vậy, tốt nhất là cố gắng viết một truy vấn hay và đẹp mắt. . Nếu bạn tiếp tục dạy người khác, hãy cố gắng thấm nhuần những đặc điểm này trong các truy vấn của họ - đặc biệt nếu bạn sẽ khắc phục sự cố cho họ

Hoàn toàn có thể tiếp tục liên kết ngày càng nhiều bảng theo cách này

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
1

Mặc dù tôi đã quên bao gồm một bảng mà chúng ta có thể muốn nối nhiều hơn một cột trong câu lệnh

mysql> create table cars [id int[3] not null auto_increment primary key, 
    -> color int[3], brand int[3], model int[3]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from cars;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | int[3] | NO   | PRI | NULL    | auto_increment |
| color | int[3] | YES  |     | NULL    |                |
| brand | int[3] | YES  |     | NULL    |                |
| model | int[3] | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
4 rows in set [0.00 sec]

mysql> insert into cars [color, brand, model] values [1,2,1], [3,1,2], [5,3,1], 
    -> [4,4,2], [2,2,3], [3,5,4], [4,1,3], [2,2,1], [5,2,3], [4,5,1];
Query OK, 10 rows affected [0.00 sec]
Records: 10  Duplicates: 0  Warnings: 0

mysql> select * from cars;
+----+-------+-------+-------+
| id | color | brand | model |
+----+-------+-------+-------+
|  1 |     1 |     2 |     1 |
|  2 |     3 |     1 |     2 |
|  3 |     5 |     3 |     1 |
|  4 |     4 |     4 |     2 |
|  5 |     2 |     2 |     3 |
|  6 |     3 |     5 |     4 |
|  7 |     4 |     1 |     3 |
|  8 |     2 |     2 |     1 |
|  9 |     5 |     2 |     3 |
| 10 |     4 |     5 |     1 |
+----+-------+-------+-------+
10 rows in set [0.00 sec]
8, đây là một ví dụ. Nếu bảng
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
8 có các mô hình dành riêng cho thương hiệu và do đó cũng có một cột có tên là
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
00 được liên kết trở lại bảng
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
01 trên trường
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
02, thì có thể thực hiện như sau

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
2

Bạn có thể thấy, truy vấn trên không chỉ liên kết các bảng đã tham gia với bảng chính

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
7 mà còn chỉ định các liên kết giữa các bảng đã tham gia. Nếu điều này không được thực hiện, kết quả được gọi là phép nối cartesian - nghĩa là dba có nghĩa là xấu. Phép nối cartesian là phép nối trong đó các hàng được trả về vì thông tin không cho cơ sở dữ liệu biết cách giới hạn kết quả, vì vậy truy vấn trả về tất cả các hàng phù hợp với tiêu chí

Vì vậy, để đưa ra một ví dụ về phép nối cartesian, hãy chạy truy vấn sau

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
3

Chúa ơi, thật là xấu xí. Tuy nhiên, đối với cơ sở dữ liệu có liên quan, đó chính xác là những gì được yêu cầu. Trong truy vấn, chúng tôi đã yêu cầu

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
02 từ
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
7 và
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
6 từ
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
8. Tuy nhiên, vì chúng tôi không chỉ định cách tham gia các bảng, cơ sở dữ liệu đã khớp mọi hàng từ bảng đầu tiên với mọi hàng từ bảng thứ hai

Được rồi, vậy là ông chủ đã trở lại, và ông ấy lại muốn biết thêm thông tin. Tôi muốn cùng một danh sách, nhưng cũng bao gồm cả 4WD trong đó

Tuy nhiên, điều này cho chúng ta một cái cớ tuyệt vời để xem xét hai cách khác nhau để thực hiện điều này. Chúng ta có thể thêm một điều kiện khác vào mệnh đề where như thế này

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
4

Mặc dù những điều trên sẽ hoạt động hoàn toàn tốt, nhưng hãy nhìn nó theo cách khác, đây là một lý do tuyệt vời để chỉ ra cách một truy vấn

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
08 sẽ hoạt động

Chúng tôi biết rằng sau đây sẽ trả lại tất cả các xe Thể thao

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
1

Và sau đây sẽ trả về tất cả 4WD

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
6

Vì vậy, bằng cách thêm mệnh đề

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
09 vào giữa chúng, kết quả của truy vấn thứ hai sẽ được thêm vào kết quả của truy vấn đầu tiên

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
7

Như bạn có thể thấy, kết quả của truy vấn đầu tiên được trả về trước, tiếp theo là kết quả của truy vấn thứ hai

Trong ví dụ này, tất nhiên sẽ dễ dàng hơn nhiều nếu chỉ sử dụng truy vấn đầu tiên, nhưng truy vấn

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
08 có thể rất tốt cho các trường hợp cụ thể. Chúng là một cách tuyệt vời để trả về các kết quả cụ thể từ các bảng từ các bảng không dễ dàng kết hợp với nhau - hoặc đối với vấn đề đó là các bảng hoàn toàn không liên quan. Có một vài quy tắc để làm theo tuy nhiên

  • Các loại cột từ truy vấn đầu tiên phải khớp với các loại cột từ mọi truy vấn khác bên dưới
  • Tên của các cột từ truy vấn đầu tiên sẽ được sử dụng để xác định toàn bộ tập hợp kết quả
  • Số cột trong mỗi truy vấn phải giống nhau

Bây giờ, bạn có thể tự hỏi sự khác biệt giữa việc sử dụng

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
08 và
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
09 là gì. Truy vấn
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
08 sẽ loại bỏ trùng lặp, trong khi truy vấn
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
09 thì không. Điều này không có nghĩa là có một chút ảnh hưởng về hiệu suất khi sử dụng
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
08 trên
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
09 nhưng kết quả có thể đáng giá - mặc dù vậy, tôi sẽ không suy đoán về điều đó

Về ghi chú này, có thể đáng chú ý một số ghi chú bổ sung ở đây

  • Nếu chúng tôi muốn sắp xếp kết quả, chúng tôi có thể sử dụng
    mysql> create table brands [id int[3] not null auto_increment primary key, 
        -> brand varchar[15]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from brands;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int[3]      | NO   | PRI | NULL    | auto_increment |
    | brand | varchar[15] | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    2 rows in set [0.01 sec]
    
    mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
        -> ['Nissan'], ['Smart'], ['BMW'];
    Query OK, 5 rows affected [0.00 sec]
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from brands;
    +----+--------+
    | id | brand  |
    +----+--------+
    |  1 | Ford   |
    |  2 | Toyota |
    |  3 | Nissan |
    |  4 | Smart  |
    |  5 | BMW    |
    +----+--------+
    5 rows in set [0.00 sec]
    
    17 nhưng bạn không thể sử dụng bí danh nữa. Trong truy vấn ở trên, việc thêm vào một
    mysql> create table brands [id int[3] not null auto_increment primary key, 
        -> brand varchar[15]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from brands;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int[3]      | NO   | PRI | NULL    | auto_increment |
    | brand | varchar[15] | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    2 rows in set [0.01 sec]
    
    mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
        -> ['Nissan'], ['Smart'], ['BMW'];
    Query OK, 5 rows affected [0.00 sec]
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from brands;
    +----+--------+
    | id | brand  |
    +----+--------+
    |  1 | Ford   |
    |  2 | Toyota |
    |  3 | Nissan |
    |  4 | Smart  |
    |  5 | BMW    |
    +----+--------+
    5 rows in set [0.00 sec]
    
    18 sẽ dẫn đến lỗi - liên quan đến kết quả, cột được gọi là
    mysql> create table brands [id int[3] not null auto_increment primary key, 
        -> brand varchar[15]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from brands;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int[3]      | NO   | PRI | NULL    | auto_increment |
    | brand | varchar[15] | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    2 rows in set [0.01 sec]
    
    mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
        -> ['Nissan'], ['Smart'], ['BMW'];
    Query OK, 5 rows affected [0.00 sec]
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from brands;
    +----+--------+
    | id | brand  |
    +----+--------+
    |  1 | Ford   |
    |  2 | Toyota |
    |  3 | Nissan |
    |  4 | Smart  |
    |  5 | BMW    |
    +----+--------+
    5 rows in set [0.00 sec]
    
    02 thay vì
    mysql> create table brands [id int[3] not null auto_increment primary key, 
        -> brand varchar[15]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from brands;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int[3]      | NO   | PRI | NULL    | auto_increment |
    | brand | varchar[15] | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    2 rows in set [0.01 sec]
    
    mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
        -> ['Nissan'], ['Smart'], ['BMW'];
    Query OK, 5 rows affected [0.00 sec]
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from brands;
    +----+--------+
    | id | brand  |
    +----+--------+
    |  1 | Ford   |
    |  2 | Toyota |
    |  3 | Nissan |
    |  4 | Smart  |
    |  5 | BMW    |
    +----+--------+
    5 rows in set [0.00 sec]
    
    30 - mặc dù cùng một bí danh đã được sử dụng trong cả hai truy vấn
  • Chúng tôi chỉ có thể có một câu lệnh
    mysql> create table brands [id int[3] not null auto_increment primary key, 
        -> brand varchar[15]];
    Query OK, 0 rows affected [0.01 sec]
    
    mysql> show columns from brands;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | int[3]      | NO   | PRI | NULL    | auto_increment |
    | brand | varchar[15] | YES  |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    2 rows in set [0.01 sec]
    
    mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
        -> ['Nissan'], ['Smart'], ['BMW'];
    Query OK, 5 rows affected [0.00 sec]
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from brands;
    +----+--------+
    | id | brand  |
    +----+--------+
    |  1 | Ford   |
    |  2 | Toyota |
    |  3 | Nissan |
    |  4 | Smart  |
    |  5 | BMW    |
    +----+--------+
    5 rows in set [0.00 sec]
    
    17 và nó phải là câu lệnh cuối cùng

Đối với các ví dụ tiếp theo, tôi sẽ thêm một vài hàng bổ sung vào bảng của chúng tôi

Tôi đã thêm

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
32 vào bảng nhãn hiệu. Tôi cũng đã thêm một hàng vào
mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
7 có giá trị
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
34 là
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
35 - không có tham chiếu trong bảng màu

Được rồi, ông chủ quay lại lần nữa, sủa yêu cầu - *Tôi muốn đếm từng nhãn hiệu chúng tôi mang và số lượng ô tô trong đó. ` - Thông thường, chúng ta vừa đến một phần thú vị của cuộc thảo luận và ông chủ muốn có thêm công việc

Đúng vậy, vì vậy điều đầu tiên chúng ta cần làm là có một danh sách đầy đủ các thương hiệu có thể

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
8

Bây giờ, khi chúng ta nối cái này với bảng ô tô của mình, chúng ta sẽ nhận được kết quả sau

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
9

Tất nhiên đó là một vấn đề - chúng tôi không thấy bất kỳ đề cập nào về thương hiệu

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
32 đáng yêu mà tôi đã thêm

Điều này là do phép nối tìm kiếm các hàng phù hợp trong cả hai bảng. Vì không có dữ liệu trong ô tô thuộc loại

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
32 nên nó không được trả lại. Đây là nơi chúng ta có thể sử dụng tham gia
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
38. Điều này sẽ trả về tất cả các kết quả từ một bảng cho dù chúng có khớp với bảng kia hay không

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
0

Bây giờ chúng ta đã có điều đó, chúng ta có thể thêm một chức năng tổng hợp đáng yêu để đếm số lượng và loại bỏ ông chủ khỏi lưng chúng ta trong giây lát

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
1

Và với điều đó, ông chủ trượt đi

Bây giờ, để giải thích điều này một cách chi tiết hơn, các phép nối ngoài có thể thuộc loại

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
39 hoặc
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
50. Trái hoặc Phải xác định bảng nào được bao gồm đầy đủ. Một
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
51 sẽ bao gồm tất cả các hàng từ bảng bên trái, trong khi [bạn đoán nó] một
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
52 mang tất cả các kết quả từ bảng bên phải vào kết quả

Một số cơ sở dữ liệu sẽ cho phép một

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
53 sẽ mang lại kết quả [dù khớp hay không] từ cả hai bảng, nhưng điều này không được hỗ trợ trong tất cả các cơ sở dữ liệu

Bây giờ, tôi có thể đoán tại thời điểm này, bạn đang tự hỏi liệu bạn có thể hợp nhất các kiểu nối trong một truy vấn hay không - và câu trả lời là có, bạn hoàn toàn có thể

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
2

Vì vậy, tại sao đó không phải là kết quả được mong đợi?

Đây là truy vấn sẽ hoạt động để nhận được kết quả mà chúng tôi mong đợi

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
3

Như chúng ta có thể thấy, chúng ta có hai phép nối ngoài trong truy vấn và kết quả đang đến như mong đợi

Bây giờ, còn những kiểu kết nối khác mà bạn yêu cầu thì sao?

Chà, không phải tất cả các cơ sở dữ liệu đều hỗ trợ

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
54 nhưng hầu như tất cả các cơ sở dữ liệu sẽ cho phép bạn tạo một giao lộ thông qua một phép nối [hoặc ít nhất là một câu lệnh where có cấu trúc tốt]

Giao lộ là một loại liên kết hơi giống với một

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
08 như được mô tả ở trên - nhưng điểm khác biệt là nó chỉ trả về các hàng dữ liệu giống hệt nhau [và ý tôi là giống hệt nhau] giữa các truy vấn riêng lẻ khác nhau được liên kết tham gia. Chỉ những hàng giống hệt nhau về mọi mặt mới được trả về

Một ví dụ đơn giản sẽ là như vậy

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
4

Trong khi truy vấn

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
08 bình thường sẽ trả về tất cả các hàng của bảng [truy vấn đầu tiên trả về bất kỳ thứ gì trên
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
57 và truy vấn thứ hai trả về bất kỳ thứ gì có
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
58] sẽ dẫn đến một tập hợp đầy đủ, truy vấn giao nhau sẽ chỉ trả về hàng khớp với
mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
59 khi nó đáp ứng cả hai

Bây giờ, nếu cơ sở dữ liệu của bạn không hỗ trợ truy vấn

mysql> create table brands [id int[3] not null auto_increment primary key, 
    -> brand varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from brands;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| brand | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.01 sec]

mysql> insert into brands [brand] values ['Ford'], ['Toyota'], 
    -> ['Nissan'], ['Smart'], ['BMW'];
Query OK, 5 rows affected [0.00 sec]
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from brands;
+----+--------+
| id | brand  |
+----+--------+
|  1 | Ford   |
|  2 | Toyota |
|  3 | Nissan |
|  4 | Smart  |
|  5 | BMW    |
+----+--------+
5 rows in set [0.00 sec]
80, thì có thể dễ dàng thực hiện điều trên bằng truy vấn sau

mysql> create table models [id int[3] not null auto_increment primary key, 
    -> model varchar[15]];
Query OK, 0 rows affected [0.01 sec]

mysql> show columns from models;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int[3]      | NO   | PRI | NULL    | auto_increment |
| model | varchar[15] | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set [0.00 sec]

mysql> insert into models [model] values ['Sports'], ['Sedan'], ['4WD'], ['Luxury'];
Query OK, 4 rows affected [0.00 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from models;
+----+--------+
| id | model  |
+----+--------+
|  1 | Sports |
|  2 | Sedan  |
|  3 | 4WD    |
|  4 | Luxury |
+----+--------+
4 rows in set [0.00 sec]
5

Nếu bạn muốn thực hiện phép giao nhau trên hai bảng khác nhau bằng cách sử dụng cơ sở dữ liệu vốn không hỗ trợ truy vấn giao nhau, bạn sẽ cần tạo phép nối trên mọi cột của bảng

Làm cách nào để lấy dữ liệu từ hai bảng?

Trong SQL, chúng ta cũng có thể truy xuất dữ liệu từ nhiều bảng bằng cách sử dụng CHỌN với nhiều bảng , điều này thực sự dẫn đến THAM GIA CHÉO tất cả các bảng. Bảng kết quả xảy ra từ CROSS JOIN của hai chứa tất cả các tổ hợp hàng của bảng thứ 2 là sản phẩm của Cartesian của các bảng.

Làm cách nào để hiển thị dữ liệu từ 2 bảng trong SQL?

Hiển thị dữ liệu từ nhiều bảng . Nối tự nhiên [còn được gọi là nối đều hoặc nối đơn giản] - Tạo phép nối bằng cách sử dụng một cột thường được đặt tên và xác định

Bạn sẽ chọn khái niệm nào để trích xuất dữ liệu từ hai bảng?

Trả lời. b. Equijoin là một trong những kiểu nối, đây là kỹ thuật đơn giản và phổ biến nhất để nối nhiều bảng. Equijoins còn được gọi là phép nối đơn giản hoặc phép nối bên trong. Equijoin liên quan đến khóa chính và khóa ngoại.

Làm cách nào tôi có thể lấy dữ liệu từ hai bảng mà không cần nối?

Cách nối các bảng trong SQL mà không cần sử dụng THAM GIA .
Sử dụng dấu phẩy giữa các tên bảng trong mệnh đề TỪ và chỉ định điều kiện nối trong mệnh đề WHERE
Sử dụng UNION / UNION ALL

Chủ Đề