Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL присъединява много към много единичен ред

Имате нужда от две обединявания:

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

Ако даден продукт може да не е в никакви категории и все пак искате да го върнете, променете JOIN на LEFT JOIN и на двете места.

Алтернативен подход:

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

Въпреки това може да е по-добре просто да използвате две заявки, вместо да поставяте множество стойности в една клетка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Часови зони на MySQL

  2. MySQL скриптовете в docker-entrypoint-initdb не се изпълняват

  3. Как да разбера кои имейли са в същите списъци?

  4. нормализиране на акцентирани знаци в MySQL заявки

  5. Помощ за SQL присъединяване за списък с приятели