Ik kom echt niet verder met mijn mySQL query, heb de search al afgezocht, maar ben niet tot het antwoord gekomen.
De query gebruik ik voor een veilingsite (opdracht voor school). Nu wil ik graag van een veiling, de volgende gegevens ophalen:
- veilinggegevens (uit tblVeilingen)
- de hoogste bieding + info (uit tblVeilingBiedingen) *
- één foto (uit tblVeilingFotos) *
- naam van aanbieder (uit tblUsers)
Probleem vind ik vooral in het vinden van de hoogste bieding met de bijbehorende gegevens.
Nou dacht ik het na veel prutsen een beetje voor elkaar te hebben, maar nu blijkt dat als er geen biedingen zijn, ik ook geen resultaat krijg (snap wel waarom).
query die ik daarvoor gebruikte:
Zoals je ziet haal ik geen gegevens van de bieding op, wat ik ook graag zou willen. En als er geen bieding gedaan is, is de WHERE clause nooit true en komt er dus geen resultaat.
Ik ben al flink bezig geweest met allerlei join, maar heb lukt gewoon niet .. Weet iemand hoe ik het voor elkaar moet krijgen?
Nog 2 dingen, ik wil dus in een query meerdere veilingen ophalen in een query (bij voorkeur, anders moet ik voor iedere veiling een nieuwe query uitvoeren
is voor een veilingoverzicht)
Het gaat dus om de hóógste bieding. Dus niet random één.. en allemaal mag wel hoeft niet.
Code die ik ook geprobeerd heb, maar bij het zoeken van de hóógste bieding tegen de lamp liep:
De query gebruik ik voor een veilingsite (opdracht voor school). Nu wil ik graag van een veiling, de volgende gegevens ophalen:
- veilinggegevens (uit tblVeilingen)
- de hoogste bieding + info (uit tblVeilingBiedingen) *
- één foto (uit tblVeilingFotos) *
- naam van aanbieder (uit tblUsers)
Probleem vind ik vooral in het vinden van de hoogste bieding met de bijbehorende gegevens.
Nou dacht ik het na veel prutsen een beetje voor elkaar te hebben, maar nu blijkt dat als er geen biedingen zijn, ik ook geen resultaat krijg (snap wel waarom).
query die ik daarvoor gebruikte:
SQL:
1
2
3
4
5
| SELECT *, MAX(`B`.`fltBedrag`) `maxBod` FROM `tblVeilingen` `V`, `tblVeilingBiedingen` `B` INNER JOIN `tblUsers` `U` ON `V`.`intAanbiederId` = `U`.`intId` INNER JOIN `tblVeilingFotos` `F` ON `V`.`intVeilingId` = `F`.`intVeilingId` WHERE `V`.`intVeilingId` = `B`.`intVeilingId` GROUP BY `B`.`intVeilingId`' |
Zoals je ziet haal ik geen gegevens van de bieding op, wat ik ook graag zou willen. En als er geen bieding gedaan is, is de WHERE clause nooit true en komt er dus geen resultaat.
Ik ben al flink bezig geweest met allerlei join, maar heb lukt gewoon niet .. Weet iemand hoe ik het voor elkaar moet krijgen?
Nog 2 dingen, ik wil dus in een query meerdere veilingen ophalen in een query (bij voorkeur, anders moet ik voor iedere veiling een nieuwe query uitvoeren
Het gaat dus om de hóógste bieding. Dus niet random één.. en allemaal mag wel hoeft niet.
Code die ik ook geprobeerd heb, maar bij het zoeken van de hóógste bieding tegen de lamp liep:
SQL:
1
2
3
4
5
6
| SELECT * FROM `tblVeilingen` `tblV` INNER JOIN `tblUsers` `tblU` ON `tblV`.`intAanbiederId` = `tblU`.`intId` INNER JOIN `tblVeilingBiedingen` `tblB` ON `tblV`.`intVeilingId` = `tblB`.`intVeilingId` INNER JOIN `tblVeilingFotos` `tblF` ON `tblV`.`intVeilingId` = `tblF`.`intVeilingId` ORDER BY `dtmDatumStart` DESC LIMIT 15 |