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

2つのテーブル、1対多の関係。行を重複させずに値を結合するにはどうすればよいですか?

    残念ながら、これを純粋にMySQLで行うことはできません。結果セットでは、列の数が異なる行を含めることはできません。いくつかのアプリケーションロジックを実装する必要があります。これに最も近いのは次のとおりです:

    select m.id, GROUP_CONCAT(voto SEPARATOR ',') 
    from messages m 
    left join votations v on v.messageID = m.id
    group by m.id;
    

    これにより、次の形式が返されます:

    ID  GROUP_CONCAT(VOTO SEPARATOR ',')
    1   2,5,6
    2   2,12,3
    

    これがここで機能していることを確認できます: http://sqlfiddle.com/#!2/241a8/ 3




    1. AWS RDSでのMySQLからPostgreSQLへの移行、パート4

    2. クエリよりも短い時間のRails`where`

    3. mysqlにwhere条件を無視させる

    4. Rails5およびRuby2.3.​​3libmysql.dllのロードに失敗しました