Android Sqlite Tow Rows как буксирные колонны, шарниры? - PullRequest
1 голос
/ 29 апреля 2011

Узнал, что это называется pivots, но не смог получить примеры для 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) 

мне всегда нужны два столбца.

Мне не хватает чего-то очень очевидного. я получу удар производительности. мой дизайн стола неправильный, поправьте меня!

UPDATE:

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

это то, чем закончилось.

1 Ответ

1 голос
/ 29 апреля 2011

Вам следует проверить Распространенные MySql Queries , есть много сэмплов, включая пивоты, которые могут вам помочь.

Вы можете найти то, что ищете этот раздел .

...