Kan er iemand mij helpen? ik probeer om de persoon met het hoogste bod uit mijn database te halen maar ik krijg alleen de persoon die de eerste keer op het product heeft geboden

dit is mijn sql
SELECT tblbieden.Productnummer, tblgebruikers.Gebruikersnaam, tblbieden.Gebruikersnummer, tblproduct.Productnaam, tblbieden.Datum, MAX( tblbieden.Bedrag ) AS Bedrag
FROM tblbieden
INNER JOIN tblproduct ON tblproduct.productnummer = tblbieden.productnummer
INNER JOIN tblgebruikers ON tblbieden.gebruikersnummer = tblgebruikers.gebruikersnummer
GROUP BY Productnummer

SELECT tblbieden.Productnummer, tblgebruikers.Gebruikersnaam, tblbieden.Gebruikersnummer, tblproduct.Productnaam, tblbieden.Datum, MAX( tblbieden.Bedrag ) AS Bedrag
FROM tblbieden
INNER JOIN tblproduct ON tblproduct.productnummer = tblbieden.productnummer
INNER JOIN tblgebruikers ON tblbieden.gebruikersnummer = tblgebruikers.gebruikersnummer
GROUP BY 
  tblbieden.Productnummer, 
  tblgebruikers.Gebruikersnaam, 
  tblbieden.Gebruikersnummer, 
  tblproduct.Productnaam, 
  tblbieden.Datum


Dat zou je de hoogste biedingen per gebruiker en per product op die datum moeten geven.
het probleem blijf.. ik vond ondertussen wel dit
<?php SELECT tblbieden.Productnummer, tblgebruikers.Gebruikersnaam, tblbieden.Gebruikersnummer, tblproduct.Productnaam, tblbieden.Datum, MAX( tblbieden.Bedrag ) AS Bedrag
FROM tblbieden
INNER JOIN tblproduct ON tblproduct.productnummer = tblbieden.productnummer
INNER JOIN tblgebruikers ON tblbieden.gebruikersnummer = tblgebruikers.gebruikersnummer
GROUP BY tblgebruikers.Gebruikersnaam, tblproduct.Productnaam

LIMIT 0 , 30 ?>


maar krijg dit resultaat:
Productnummer Gebruikersnaam Gebruikersnummer Productnaam Datum Bedrag
1 arthur.maenhout 1 Iphone 5 2014-02-26 22:10:01 170.00
1 jonathan.lips 2 Iphone 5 2014-02-26 22:13:42 530.00
2 jonathan.lips 2 Fiets 2014-02-26 22:13:58 215.00
3 arthur.maenhout 1 Bureau 2014-02-26 22:10:13 60.00
4 arthur.maenhout 1 Lamp 2014-05-01 12:02:11 35.00
4 jonathan.lips 2 Lamp 2014-05-01 12:18:19 45.00

ik krijg dus 2 producten nog altijd 2 maal
Je moet eerst bepalen wat de hoogste bieding per product is, en daarna ga je de zelfde table joinen om de bijhorende gebruiker te achterhalen:

SELECT
	sb.productnummer,
	g.gebruikersnaam,
	b.bedrag
FROM
	(SELECT productnummer, MAX(bedrag) bedrag
	 FROM tblbieden
	 GROUP BY productnummer) sb
JOIN
	tblbieden b
	ON sb.productnummer = b.productnummer AND sb.bedrag = b.bedrag
JOIN
	gebruikers g
	ON b.gebruikersid = g.gebruikersid
Dit werkt bijna perfect danku
uw antwoord heeft zeer veel punten opgeleverd voor mijn eindproef van zesde middelbaar

nog een vraagje, als ik nu ook de productnaam wil tonen waar moet ik dit dan zetten in de code?

De tabel producten erbij joinen op het productnummer en de productnaam aan de select list toevoegen

Reageren