Hướng dẫn select from two tables mysql - chọn từ hai bảng mysql

Những gì bạn làm ở đây được gọi là

name     price   photo
fanta    5       ./images/fanta-1.jpg
dew      4       ./images/dew-1.jpg
5 [mặc dù bạn làm điều đó hoàn toàn vì bạn chọn từ nhiều bảng]. Điều này có nghĩa là, nếu bạn không đặt bất kỳ điều kiện nào trong mệnh đề nơi của bạn, bạn có tất cả các kết hợp của các bảng đó. Chỉ với điều kiện của bạn, bạn hạn chế tham gia với những hàng mà ID đồ uống phù hợp.

Nhưng vẫn còn nhiều hàng X trong kết quả cho mỗi đồ uống, nếu có x ảnh với đồ uống đặc biệt này. Tuyên bố của bạn không hạn chế [các] bức ảnh bạn muốn có!

Nếu bạn chỉ muốn một hàng mỗi lần uống, bạn phải nói với SQL những gì bạn muốn làm nếu có nhiều hàng với một loại đồ uống cụ thể_id. Đối với điều này, bạn cần nhóm và một chức năng tổng hợp. Bạn nói với SQL mục nào bạn muốn nhóm lại với nhau [ví dụ: tất cả các loại đồ uống bằng nhau] và trong lựa chọn, bạn phải biết mục nào khác nhau cho mỗi hàng kết quả được nhóm nên được thực hiện. Đối với các số, đây có thể là trung bình, tối thiểu, tối đa [để đặt tên cho một số].

Trong trường hợp của bạn, tôi không thể thấy cảm giác để truy vấn các bức ảnh cho đồ uống nếu bạn chỉ muốn một hàng. Bạn có thể nghĩ rằng bạn có thể có một loạt các bức ảnh trong kết quả của bạn cho mỗi đồ uống, nhưng SQL không thể làm điều này. Nếu bạn chỉ muốn bất kỳ bức ảnh nào và bạn không quan tâm đến việc bạn sẽ nhận được, chỉ cần nhóm theo đồ uống_id [để chỉ nhận được một hàng mỗi lần uống]:

SELECT name, price, photo
FROM drinks, drinks_photos
WHERE drinks.id = drinks_id 
GROUP BY drinks_id
name     price   photo
fanta    5       ./images/fanta-1.jpg
dew      4       ./images/dew-1.jpg

Trong MySQL, chúng tôi cũng có nhóm_concat, nếu bạn muốn tên tệp được nối với một chuỗi duy nhất:

SELECT name, price, GROUP_CONCAT[photo, ',']
FROM drinks, drinks_photos
WHERE drinks.id = drinks_id 
GROUP BY drinks_id
name     price   photo
fanta    5       ./images/fanta-1.jpg,./images/fanta-2.jpg,./images/fanta-3.jpg
dew      4       ./images/dew-1.jpg,./images/dew-2.jpg

Tuy nhiên, điều này có thể trở nên nguy hiểm nếu bạn có

name     price   photo
fanta    5       ./images/fanta-1.jpg
dew      4       ./images/dew-1.jpg
6 trong các giá trị trường, vì rất có thể bạn muốn chia điều này một lần nữa ở phía máy khách. Nó cũng không phải là một hàm tổng hợp SQL tiêu chuẩn.

Trong phần trước của loạt MySQL này, tôi đã chứng minh cách bạn có thể tìm nạp dữ liệu bằng các điều khoản MySQL. Trong phần này, chúng ta sẽ tìm hiểu về hàm nối trong MySQL, tại sao chúng được sử dụng và cách sử dụng chúng. Bắt đầu nào.

Làm cách nào tôi có thể liên kết hai bảng trong mysql

MySQL tham gia cho phép bạn truy cập dữ liệu từ nhiều bảng. Tham gia MySQL được thực hiện bất cứ khi nào hai hoặc nhiều bảng được tham gia trong một câu lệnh SQL. Các tham gia MySQL bao gồm: Tham gia bên trong MySQL [còn được gọi là tham gia đơn giản], tham gia bên ngoài bên trái MySQL [còn được gọi là tham gia bên trái, nó trả về các bản ghi phù hợp từ bảng bên trái], tham gia bên phải [điều này trả về các bản ghi phù hợp từ Bảng bên phải] và tham gia đầy đủ [trả về bản ghi phù hợp từ tất cả các bảng]. Sử dụng các tham gia MySQL, bạn sẽ có thể tham gia nhiều hơn hai bảng.

Trong MySQL, tham gia bên trong là tham gia mặc định. Trên các từ khóa nhất định tại thời điểm đó, nó chọn tất cả các hàng từ cả hai bảng, miễn là có một tọa độ giữa các cột trong cả hai bảng.

Không giống như SQL, MySQL không coi tham gia bên ngoài là một loại tham gia riêng biệt. Để có được kết quả tương tự như tham gia bên ngoài, bạn cần tham gia tham gia bên ngoài bên trái và tham gia bên ngoài bên phải.

Có bao nhiêu bảng có thể được tham gia trong mysql

Theo tài liệu chính thức của MySQL 8.0, số lượng bảng tối đa trong câu lệnh tham gia là 61. Tuy nhiên, lưu ý rằng các câu lệnh tham gia có thể yêu cầu nhiều tài nguyên máy chủ khi số lượng bảng tăng. Nếu đây là trường hợp với truy vấn của bạn, tôi khuyên bạn nên chia nó thành nhiều truy vấn để giảm tải trên máy chủ.

Hãy để chúng tôi bắt đầu bằng cách thêm một bảng mới trong cơ sở dữ liệu của chúng tôi sẽ chứa thông báo cùng với ID người dùng đã gửi tin nhắn này, chúng tôi sẽ đặt tên cho nó tin nhắn. Lược đồ của bảng của chúng tôi là:

Tạo bảng `message` [

& nbsp; `id` int [11] không phải null,

& nbsp; `message` varchar [255] không phải null

]

Chúng tôi sẽ sử dụng cùng một chức năng selectData mà chúng tôi đã tạo trong tệp crud.php của chúng tôi. Bây giờ chúng ta hãy bắt đầu bằng cách tham gia hai bảng này. Bạn cũng có thể lấp đầy bảng của bạn để bạn có thể thực hành nó.selectdata function which we have created in our crud.php file. Now let us get started by joining these two tables. You can also fill your table so you can practice it.

Ngừng lãng phí thời gian vào máy chủ

Cloudways xử lý quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của bạn hài lòng.

Tham gia bên trong

Bên trong tham gia tham gia bảng theo cách mà nó chỉ hiển thị những kết quả phù hợp với điều kiện được đưa ra và ẩn những người khác. Cấu trúc của các truy vấn nối bên trong là:

Chọn cột_name [S]

Từ Bảng 1

Tham gia bên trong TABLE2

Trên bảng1.column_name = Bảng2.column_name;

Tham gia bên trong và tham gia đơn giản cả hai đều giống nhau. Bạn cũng có thể viết truy vấn của mình như thế này:

Chọn cột_name [S]

Từ Bảng 1

Tham gia bên trong TABLE2

Trên bảng1.column_name = Bảng2.column_name;

Tham gia bên trong và tham gia đơn giản cả hai đều giống nhau. Bạn cũng có thể viết truy vấn của mình như thế này:

$sql = "SELECT CONCAT[myguests.firstname,' ',myguests.lastname] AS name, myguests.email, messages.message 
From myguests 
INNER JOIN messages 
ON myguests.id = messages.id";

Tham gia Bảng 2CONCAT function is used to join two strings column in MySQL. Now open your index.php which we have created previously copy the following code in it.

Bài Viết Liên Quan

Chủ Đề

  Name   Email   Message