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

左結合、合計、およびカウントグループ

    あなたの問題は、2つ(またはそれ以上)のstoreがある場合です 行と2つ(またはそれ以上)のpics 単一のgoodsの行 行は、行のすべての組み合わせの積になります。

    これを修正するには、参加する前に集計を行ってください:

    SELECT 
      good.id, 
      good.title, 
      IFNULL(s.storerest, 0) AS storerest, 
      IFNULL(p.picscount, 0) AS picscount
    FROM goods 
    LEFT JOIN (
      SELECT goodid, sum(rest) AS storerest
      FROM store
      GROUP BY goodid
    ) s ON (goods.id = s.goodid) 
    LEFT JOIN (
      SELECT goodid, count(id) AS picscount
      FROM pics
      GROUP BY goodid
    ) p ON (goods.id = p.goodid) 
    


    1. SQLAlchemyでシャーディングするために__tablename__を動的に設定しますか?

    2. トランザクションでアップサート

    3. MySQLテーブルがUTF-8であり、storageEngine InnoDBがあるかどうかを確認するにはどうすればよいですか?

    4. 新しいデータがリストビューに挿入されたときのAndroidの自動更新