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

MySQL-別のテーブルの行を結合してカウントします

    考えられるオプションはいくつかありますが、そのうちの1つは次のとおりです。

    SELECT * ,
      (SELECT count(*)
       FROM `table_votes`
       WHERE `children`.`id` = `table_votes`.`child_id`) AS `Count`
    FROM `children`
    WHERE `parent_id` = 20
    

    クエリも使用できますが、GROUP BYを追加する必要があります :

    SELECT  
     `children`.`id`,  
     `children`.`data`,  
     `children`.`parent_id`,  
     `children`.`timestamp`,  
     COUNT(`v`.`children_id`)  
    FROM `children` LEFT JOIN `table_votes` `v` ON `children`.`id` = `v`.`child_id`  
    WHERE `children`.`parent_id` = 20 
    GROUP BY `children`.`id`, `children`.`data`, `children`.`parent_id`, `children`.`timestamp`,
    ORDER BY `timestamp` ASC
    


    1. MySQLテーブルで2番目に高い値を取得します

    2. テーブルのID列の明示的な値は、列リストが使用され、IDENTITY_INSERTがONSQLServerの場合にのみ指定できます。

    3. Oracleの集計を使用したテーブルの回転/ピボット

    4. postgresqlhibernateでuserという名前のテーブルを使用できません