sql >> Database teknologi >  >> RDS >> Mysql

MySQL slutter mange til mange enkelt række

Du skal bruge to joins:

VÆLG product.productID, category.categoryID, product.name, product.price, category.nameFRA productJOIN product_cat ON product.productID =product_cat.productIDJOIN category ON category.categoryID =product_cat.categoryID 

Hvis et produkt ikke er i nogen kategorier, og du stadig ønsker at returnere det, skal du ændre JOIN til LEFT JOIN begge steder.

En alternativ tilgang:

VÆLG produkt.produkt-ID, produkt.navn, produkt.pris, GROUP_CONCAT(category.name)FRA productJOIN product_cat ON product.productID =product_cat.productIDJOIN category ON category.categoryID =product_cat.categoryIDGROUP BY product.productID

Det kan dog være bedre bare at bruge to forespørgsler i stedet for at indsætte flere værdier i en enkelt celle.



  1. SSMS 2016-fejl ved import af Azure SQL v12 bacpac:hovednøgler uden adgangskode understøttes ikke

  2. int(11) vs. int(alt andet)

  3. Hvad er PL/SQL-lagrede procedurer i Oracle-databasen

  4. Databasedesign:objekter med forskellige attributter