Pregunta

Llegó a saber que se llamó Pivots, pero no pudo obtener ejemplos para SQLite sin agregación.

Esquema:

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)

Se requiere salida:

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

Siempre necesito dos columnas.

¿Me estoy perdiendo algo muy obvio? ¿Recibo un éxito de rendimiento? ¿Está mal el diseño de mi mesa, corrígeme!

ACTUALIZAR:

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

Esto es lo que termina con.

¿Fue útil?

Solución

Deberías revisar el Consultas comunes de MySQL, hay muchas muestras, incluidos los pivotes, que pueden ayudarlo.

Puedes encontrar lo que estás buscando en esta sección.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top