私と同様の問題に関する多くの投稿があることは知っていますが、以下のように、私のケースに適用できる解決策を見つけることができないようです。
列の数が一致するようにnull列を追加しました。最初の選択ですべての列を指定する必要があることがわかりました。そこに問題があります。2番目の選択のCOUNTに対応する最初の選択にCOUNT列を含める方法がわかりません。
助けてくれてありがとう。
最初の選択:
SELECT brands.brand_id,
brands.brand,
models.model_id,
models.model,
segments.segment_id,
segments.segment,
versions.version_id,
versions.version,
versions.places,
versions.gearbox,
versions.doors,
prices.price
FROM versions
INNER JOIN models USING (model_id)
INNER JOIN segments USING (segment_id)
INNER JOIN brands USING (brand_id)
INNER JOIN prices USING(version_id)
WHERE price BETWEEN 200001 AND 225000
AND brands.active = 'Y'
AND models.active = 'Y'
AND versions.active = 'Y'
2 番目の選択:
SELECT Count(*) AS SafetyItems,
version_id,
NULL AS COL3,
NULL AS ....,
NULL AS COL12
FROM versiontrim
INNER JOIN trims USING(trim_id)
INNER JOIN versions USING(version_id)
INNER JOIN prices USING(version_id)
INNER JOIN models USING (model_id)
INNER JOIN brands USING (brand_id)
WHERE trimtype IN( 'sec', 'help' )
AND price BETWEEN 200001 AND 225000
AND brands.active = 'Y'
AND models.active = 'Y'
AND versions.active = 'Y'
GROUP BY version_id
最初の選択のサンプル結果:
brand_id brand model_id model segment_id version_id price
58 Renault 11 Megane 4 44 209900
58 Renault 14 Scenic 5 54 209900
58 Renault 11 Megane 4 69 200900
71 Toyota 29 Yaris 2 214 200900
71 Toyota 30 Auri 4 216 207900
52 Nissan 58 Pick-up 14 282 209000
24 Ford 21 Focus 4 290 209000
上記に追加したい2番目の選択のサンプル結果(価格列の後):
SafetyItems version_id
9 44
7 54
9 69
10 214
6 216
1 282
10 290