1
SELECT t.id_type, brand, model, countMod FROM types t  
    LEFT JOIN (
       SELECT p.id_type, brand, model, COUNT( model ) AS countMod 
           FROM products p  
           GROUP BY brand) p2 
    ON t.id_type = p2.id_type 
    WHERE t.id_type = "TCE" 
    ORDER BY brand

このクエリは問題なく機能しますが、もちろん、各ブランドの下にグループ化されたモデルを失います。
モデルをリストしてカウントする方法はありますか?
つまり、brand1、model1、model2、model3、countMod=3 -- brand2、model1、model2、countMod=2 です。
どんな助けでも大歓迎です。ありがとう

4

3 に答える 3

2
SELECT brand, GROUP_CONCAT(model) models, COUNT(model) AS countMod
FROM products
GROUP BY brand
于 2013-01-19T08:06:45.360 に答える
1

これを試して::

SELECT 
t.id_type, 
brand,
GROUP_CONCAT(model SEPARATOR ',') as model, 
COUNT( model ) AS countMod 
FROM types t
LEFT JOIN products p  ON t.id_type = p.id_type
WHERE t.id_type = "TCE" 
GROUP BY brand
ORDER BY brand
于 2013-01-19T08:03:07.867 に答える
-1

推奨されるアプローチは、2 つのクエリを実行することです。1 つはデータ用で、もう 1 つはCOUNT().

MySQL では、SQL_CALC_FOUND_ROWS(主にLIMIT節がある場合) も使用できますが、そのパフォーマンスには議論の余地があります。どちらが最速ですか?を参照してください。SELECT SQL_CALC_FOUND_ROWS FROM `table` または SELECT COUNT(*)

于 2013-01-19T08:02:34.720 に答える