Avatar billede exposure Nybegynder
20. januar 2006 - 13:30 Der er 6 kommentarer og
1 løsning

MySQL query

Jeg har en tabel med brugere og en tabel med indbetalinger.

De skal joines så tabelen med indbetalinger kun viser den nyeste for hver bruger.

+------+
| user |
+------+
| *uid |
| name |
+------+

+---------+
| payment |
+---------+
|  *pid  |
|  uid  |
|  date  |
| amount  |
+---------+

Så jeg får en oversigt der hedder
+------+--------------+--------+
| name | last payment | amount |
+------+--------------+--------+
|      |              |        |
Avatar billede innercitydk Nybegynder
20. januar 2006 - 13:37 #1
Er det sådan noget her du tænker på?

SELECT user.navn, (MAX)payment.pid, payment.uid, payment.date, payment.amount FROM user,payment WHERE user.uid=payment.uid

Vh
Avatar billede exposure Nybegynder
20. januar 2006 - 14:01 #2
Yes, det virker. Skulle bare lige tilføje GROUP BY

Jeg vil egentlig også gerne have at hvis der ikke er nogle payment for en bruger at han stadig bliver vist.

Husk at skrive et svar så du kan få dine point
Avatar billede innercitydk Nybegynder
20. januar 2006 - 14:25 #3
Det bliver lidt sværere, den kan jeg ikke lige gennemskue :) I den forrige sql henter vi jo udfra user.uid=payment.uid

Vh
Avatar billede innercitydk Nybegynder
20. januar 2006 - 14:26 #4
Prøv at fyre den af engang på en kunde uden nogle poster i payment tabellen og se om han bliver vist
Avatar billede exposure Nybegynder
20. januar 2006 - 14:29 #5
Det gør han ikke.

Jeg tror det er noget med at man skal lave en LEFT JOIN
Avatar billede exposure Nybegynder
20. januar 2006 - 14:34 #6
Okay fandt det selv:

SELECT user.name, MAX(payment.pid), payment.uid, payment.date, payment.amount
FROM user LEFT JOIN payment ON (user.uid=payment.uid) GROUP BY uid
Avatar billede innercitydk Nybegynder
20. januar 2006 - 14:38 #7
Nice :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester