Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL nối nhiều thành nhiều hàng đơn

Bạn cần hai kết hợp:

SELECT
    product.productID,
    category.categoryID,
    product.name,
    product.price,
    category.name
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID

Nếu một sản phẩm có thể không thuộc danh mục và bạn vẫn muốn trả lại, hãy thay đổi THAM GIA thành THAM GIA TRÁI ở cả hai nơi.

Một cách tiếp cận thay thế:

SELECT
    product.productID,
    product.name,
    product.price,
    GROUP_CONCAT(category.name)
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID
GROUP BY product.productID

Tuy nhiên, tốt hơn là chỉ nên sử dụng hai truy vấn thay vì đặt nhiều giá trị vào một ô duy nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phân trang MySQL mà không cần truy vấn kép?

  2. Cách tạo và duy trì Cơ sở dữ liệu MySQL trong cPanel

  3. Xuất / Nhập CSV với PHPExcel

  4. PHP MYSQL PDO SUM của các cột

  5. Có thể nối các chuỗi từ nhiều hàng và bảng thành một cột kết quả không?