

テーブル A  
ID_A, Name_A

テーブル B  
ID_B, Name_B, Gender, ID_A

このような2つのデータテーブルから全データ（ID_B, Name_B, Gender, ID_A,
Name_A）を並べ替えて取得したいんですが、並べ替え条件が  
①Name_B DESC,  
②複数ID_Aがある場合には数の多い順。

COUNT使うと全部のデータが取得できず難航しています。  
アドバイス頂ければ幸いです。


CC BY-SA 3.0
2017-04-18T07:17:26.287
34097
2019-03-14T03:00:12.433
22622
question
mysql
2つのテーブルからデータを並べ替えるSQLクエリ（MySQL)


テーブルの相関や求められている結果がよく分からないので、想像での回答なのですが

[code]

    SELECT
      T1.id_b,
      T1.name_b,
      T1.gender,
      T1.id_a,
      T2.name_a,
      (SELECT count(*) FROM table_b T3 WHERE T3.name_b = T1.name_b AND T3.id_a = T1.id_a) AS my_count
    FROM
      table_b AS T1
    LEFT JOIN
      table_a AS T2 USING(id_a)
    ORDER BY
      T1.name_b DESC, my_count DESC;
    
[/code]

のようにすればよいのではないかと思います

1行1列を返すSELECT句は値として扱うことができることを利用しています


CC BY-SA 3.0
2017-04-18T09:49:01.687
34101
2017-04-18T09:49:01.687
9796
34097
answer