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

2つの左結合により、MySQLで誤ったデータ(二重データ?)が発生します

    問題は、product_reviews 注文テーブルには、商品IDごとに複数の行を含めることができます。これを修正する1つの方法は、サブクエリを使用することです。

    SELECT `products`.*, 
      o.revenue,
      o.qty, 
      ROUND(avg_stars) as avg_stars 
    FROM `products` 
    LEFT JOIN
    (
      select `product_id`, 
        sum(total_count) revenue,
        sum(quantity) qty
      from `orders`
      where `status` in ('delivered', 'new')
      group by `product_id`
    ) o
      ON `products`.`id` = o.`product_id`
    LEFT JOIN
    (
      select product_id, avg(stars) avg_stars
      from product_reviews
      group by product_id
    ) pr
        ON (products.id = pr.product_id)
    ORDER BY products.ID DESC
    LIMIT 10
    OFFSET 0
    


    1. ログオントリガーをドロップしようとすると「トリガーをドロップできません」エラーが発生しますか?これを試して。

    2. フラグメントでAndroidSqliteデータベースを開く

    3. mysqlからの日付がjavascriptで1日減少するのはなぜですか?

    4. MYSQL-2つのクエリを結合して、2番目のクエリで見つかった要素を省略する方法(またはおそらくより良い解決策?)