Вопрос

Узнал, что это называется 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) 

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

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

ОБНОВИТЬ:

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

Это то, что закончилось.

Это было полезно?

Решение

Вы должны проверить Общие запросы MySQL, Есть много образцов, в том числе опорных, которые могут вам помочь.

Вы можете найти то, что ищете в эта секция.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top