"Martin" <martin@aarhof.invalid> skrev i en meddelelse
news:4a675d2a$0$48232$14726298@news.sunsite.dk...
> Hej..
>
> Kan ikke lige få denne til at makke ret
Jeg koger lige tabellerne ned til det væsentlige
>
> 2 tabeller
> user tabel
> id (int, auto increment, primary)
>
> orders tabel
> id (int, auto increment, primary)
> user_id (key til user tabel)
>
> SELECT
> u.id AS user_id,o.id AS order_id
> FROM tbl_user AS u
> INNER JOIN tbl_orders AS o
> ON o.user_id = u.id
> GROUP BY u.id
> ORDER BY o.date_added DESC, u.id
>
> Dog så henter den med laveste id fra orders tabel, her vil jeg gerne
> have den højeste - jeg har prøvet både med o.date_added ASC/DESC men
> ingen ændring.
>
> Hvad gør jeg forkert?
Det må være MySql, du bruger.
Du gør noget fyfy
Du grouper på u.id, men har ingen gruppe-funktion på tbl_orders, så MySql
tager bare en tilfældig række fra tbl_orders, der har det rette user_id.
MsSql vil bare brokke sig og dø...
Alle kolonnerne i en GROUP BY skal enten være I group by-linien, eller være
en gruppe-funktion som sum(), max(), min() etc.
Hvis det er det højeste fakturanr du vil have, er det altså
SELECT o.user_id.max(o.id) FROM ...
GROUP BY u.id
Når du så har ordre_id, må du lave endnu et select for at få
ordredetaljerne.
Enten i oppe i php, eller ved at joine med ordretabellen endnu en gang,
selvom jeg ikke er sikker på man kan joine på max(o.id).
Leif