How to get the last row (last itemStoreUnitID) from table of each grouped items?
SELECT * FROM itemStoreUnits isu
LEFT JOIN storeUnits su ON isu.itemStoreUnitStoreUnitID=su.storeUnitID
LEFT JOIN items i ON isu.itemStoreUnitItemID=i.itemID
LEFT JOIN products p on i.productID=p.productID
GROUP by isu.itemStoreUnitItemID desc
Previously presented query retieves only the first row (oldest ID) of each item group and cannot be ordered in descending order with ORDER BY before GROUP BY.
I have tried a subquery, unfortunately no sucess achieved
SELECT * FROM itemStoreUnits isu
LEFT JOIN storeUnits su ON isu.itemStoreUnitStoreUnitID=su.storeUnitID
LEFT JOIN items i ON isu.itemStoreUnitItemID=i.itemID
LEFT JOIN products p on i.productID=p.productID
where isu.itemStoreUnitID IN
(
SELECT max(itemStoreUnitID) FROM itemStoreUnits
)
GROUP by i.itemID desc;
Or
SELECT *,MAX(isu.itemStoreUnitID) FROM itemStoreUnits isu
LEFT JOIN storeUnits su ON isu.itemStoreUnitStoreUnitID=su.storeUnitID
LEFT JOIN items i ON isu.itemStoreUnitItemID=i.itemID
LEFT JOIN products p on i.productID=p.productID
GROUP by i.itemID desc;
*,Max(..)
retieves correct data (last ID); however, those data are not part of the wanted row. Data are just assigned to them as an additional column.