⊗ppPmDOGD 382 of 447 menu

Lấy dữ liệu từ các bảng liên kết trong PHP

Hãy tạo một truy vấn sẽ lấy tất cả người dùng cùng với thành phố của họ. Để làm điều này chúng ta sẽ cần lệnh LEFT JOIN:

Cú pháp của nó như sau:

SELECT các_trường FROM tên_bảng LEFT JOIN tên_bảng_liên_kết ON điều_kiện_liên_kết WHERE điều_kiện_lọc

Hãy phân tích các phần riêng biệt của cú pháp lệnh này.

Các trường

Vì việc chọn dữ liệu diễn ra từ nhiều bảng, nên việc chọn tất cả các trường thông qua * sẽ không hoạt động. Truy vấn sau sẽ chỉ chọn các trường từ bảng chính, chứ không phải từ bảng liên kết:

SELECT *

Để dữ liệu được chọn từ tất cả các bảng, cần chỉ định tên bảng để chọn trước *:

SELECT users.*, cities.*

Hoặc có thể liệt kê các trường chúng ta cần với việc chỉ định tên bảng trước chúng:

SELECT users.name, cities.name

Hai cách này có một vấn đề. Đó là nếu các trường trong các bảng có tên giống nhau, thì trong mảng PHP sẽ xảy ra xung đột tên và chỉ một trường sẽ chiến thắng, còn trường thứ hai sẽ không có.

Để giải quyết vấn đề cần đổi tên các tên xung đột thông qua lệnh as:

SELECT users.name, cities.name as city_name

Liên kết

Sau lệnh ON chúng ta phải chỉ định các trường từ hai bảng, thông qua đó thực hiện liên kết. Trong trường hợp của chúng ta đó sẽ là trường id từ bảng thành phố và trường city_id từ bảng người dùng:

ON cities.id=users.city_id

Truy vấn

Cuối cùng, truy vấn sẽ lấy người dùng cùng với thành phố của họ sẽ như sau:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

Bài tập thực hành

Giả sử bạn có bảng sản phẩm và bảng với danh mục của chúng. Hãy viết truy vấn lấy tên sản phẩm cùng với danh mục của chúng.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối