sql >> Databasteknik >  >> RDS >> Mysql

MySQL slå samman många till många en rad

Du behöver två joins:

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

Om en produkt inte finns i några kategorier och du fortfarande vill returnera den, ändra JOIN till LEFT JOIN på båda ställena.

Ett alternativt tillvägagångssätt:

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

Det kan dock vara bättre att bara använda två frågor istället för att lägga in flera värden i en enda cell.



  1. Uppdatera formuläret med Ajax, PHP, MYSQL

  2. Skicka flera <select>-element med jQuery POST

  3. Optimalt sätt att sammanfoga/sammanfoga strängar

  4. SQLSTATE[HY093]:Ogiltigt parameternummer:antalet bundna variabler matchar inte antalet tokens på rad 102