sql >> Database >  >> RDS >> Mysql

MySQL voegt zich bij veel tot veel enkele rijen

Je hebt twee joins nodig:

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

Als een product in geen enkele categorie valt en je het toch wilt retourneren, verander dan JOIN in LEFT JOIN op beide plaatsen.

Een alternatieve benadering:

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

Het is echter misschien beter om gewoon twee zoekopdrachten te gebruiken in plaats van meerdere waarden in een enkele cel te plaatsen.



  1. Zoekopdracht bijwerken op basis van voorwaarde

  2. Queryresultaten retourneren als een door komma's gescheiden lijst in MySQL

  3. Hoe meerdere databases dynamisch te gebruiken voor één model in CakePHP

  4. Corrupt SQL-database repareren tijdens upgradeprobleem