için farklı bir sonuç verir. MySQL 5.6'ya geçiş yaptığımdan beri, birleşik bir çizelgenin sırası ile sorun yaşıyorum. Bu iyi çalıştı MySQL 5.1Farklı MySQL sürümleri LEFT JOIN ve ORDER alt sorgularında
Product_cat_pictures içindeki her kategori için her son tek resmi (en yüksek id) seçmek istiyorum. Aynı sorgunun her uygulamasında, belirli kategoriler için resimlerin sırası farklıdır. repo.filename için rasgele bir değer (ilk erişilebilir değer) dönen, sadece c.id
üzerinde
SELECT c.id, repo.filename FROM product_cat_container AS c
LEFT JOIN (SELECT * FROM product_cat_pictures ORDER BY id DESC) AS p
ON c.id = p.cat_id
LEFT JOIN picture_repository AS repo
ON p.picture_id = repo.id
GROUP BY c.id
ORDER BY c.order;
GROUP BY
geçerli:
SELECT c.id, repo.filename FROM product_cat_container AS c
LEFT JOIN (SELECT * FROM product_cat_pictures ORDER BY id DESC) AS p
ON c.id = p.cat_id
LEFT JOIN picture_repository AS repo
ON p.picture_id = repo.id
GROUP BY c.id
ORDER BY c.order
product_cat_container
---------------------
id name order
product_cat_pictures
---------------------
id cat_id picture_id
picture_repository
---------------------
id filename
Kontrol [GROUP BY 12.19.3 MySQL Taşıma] (http://dev.mysql.com/doc/refman/5.6/en/group-by -handling.html). – wchiquito