1

呼び出されたピボットを知るようになりましたが、集約なしではsqliteの例を取得できませんでした。

スキーマ:

Readonly Table foos(_id, foo) (10 max records)
Readonly Table bars(_id, bar) (300 max records)
Readonly Table items(_id, foo_id, bar_id, item1, item2) (3000 max records)

必要な出力:

Select
 foos._id, 
 foos.foo, 
 bars.bar, 
 items.item1(bar_id=1), 
 items.item1(bar_id=2), 
 items.item2(bar_id=1) 

私は常に2つの列が必要です。

私は非常に明白な何かを逃していますか?パフォーマンスが低下しますか?私のテーブルのデザインが間違っています、私を訂正してください!

アップデート:

SELECT
    foo_id,
    GROUP_CONCAT(CASE bar_id WHEN 1 THEN title ELSE NULL END) AS 'Item1',
    GROUP_CONCAT(CASE bar_id WHEN 2 THEN title ELSE NULL END) AS 'Item2'
FROM 
    items
WHERE 
    foo_id=2
GROUP BY
    foo_id

これが最終的な結果です。

4

1 に答える 1

1

Common MySql Queriesを確認してください。ピボットを含む多くのサンプルがあり、役立つ場合があります。

このセクションで探しているものを見つけることができます。

于 2011-04-29T12:33:59.763 に答える