sql >> データベース >  >> RDS >> Mysql

MySQLは多対多の単一行に参加します

    2つの結合が必要です:

    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をLEFTJOINに変更します。

    別のアプローチ:

    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つのセルに複数の値を入力するのではなく、2つのクエリを使用する方がよい場合があります。



    1. Redbean O / RMストアの日付をvarchar(255)として?

    2. JDBCを使用してストアドプロシージャからOracleテーブルタイプを取得します

    3. SpringDockerコンテナはPostgresDockerコンテナにアクセスできません

    4. MariaDBでのFIND_IN_SET()のしくみ