James Earl wrote:
> After upgrading from SQLite 3.8.6 to 3.8.7, I am no longer able to
> order group_concat values by using a subselect.  For example the
> following query with 3.8.6 will give me an ordered string of
> items.image values based on items.position (which contains integers):
>
> SELECT products.name, GROUP_CONCAT(items.image) AS item_images
> FROM products
> INNER JOIN (
>     SELECT * FROM items ORDER BY position
>   ) AS items ON (items.product_id = products.id)
> GROUP BY products.id
> ORDER BY products.name

Joining typically involves reordering rows.  You were lucky in 3.8.6.

You have to order the result of the join before grouping:

SELECT product_name,
       GROUP_CONCAT(item_image) AS item_images
FROM (SELECT products.id AS product_id,
             products.name AS product_name,
             items.image AS item_image
      FROM products
      JOIN items ON items.product_id = products.id
      ORDER BY products.id,
               items.position)
GROUP BY product_id
ORDER BY product_name


Regards,
Clemens
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to