Jeg er i gang med at lave et lille online auktions system, og har i det tilfælde tre tabeller, Person, Lot og Bid. Tabellerne er bygget sådan op at Person indeholder person_id, Person_name og person_email. Lot indeholder lot_id og lot_description. Bid indeholder bid_id, bid_value, bid_lot_id og bid_person_id, hvor bid_lot_id og bid_person_id er fremmed nøgler med reference til henholdsvis Person tabellen og Lot tabellen. SQL koden ser således ud
- CREATE TABLE Person
- (
- person_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
- person_name VARCHAR(255) NOT NULL,
- person_email VARCHAR(255) NOT NULL,
- PRIMARY KEY (person_id)
- );
-
- CREATE TABLE Lot
- (
- lot_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
- lot_description VARCHAR(255) NOT NULL,
- PRIMARY KEY (lot_id)
- );
-
- CREATE TABLE Bid
- (
- bid_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
- bid_value INT UNSIGNED NOT NULL,
- bid_lot_id INT UNSIGNED NOT NULL,
- bid_person_id INT UNSIGNED NOT NULL,
- PRIMARY KEY (bid_id),
- FOREIGN KEY (bid_lot_id) REFERENCES Lot(lot_id),
- FOREIGN KEY (bid_person_id) REFERENCES Person(person_id)
- );
-
- INSERT INTO Person (person_name, person_email)
- VALUES ("Martin Rohwedder", "m@r.dk");
- INSERT INTO Person (person_name, person_email)
- VALUES ("Peter Nielsen", "p@n.dk");
- INSERT INTO Person (person_name, person_email)
- VALUES ("Tanja Larsen", "t@l.dk");
-
- INSERT INTO Lot (lot_description)
- VALUES ("Good Super Nintendo Entertainment System (SNES) with 5 games ");
- INSERT INTO Lot (lot_description)
- VALUES ("Small designer Chair");
- INSERT INTO Lot (lot_description)
- VALUES ("Rembrandt Painting");
-
- INSERT INTO Bid (bid_value, bid_lot_id, bid_person_id)
- VALUES (300, 1, 2);
- INSERT INTO Bid (bid_value, bid_lot_id, bid_person_id)
- VALUES (500, 1, 1);
- INSERT INTO Bid (bid_value, bid_lot_id, bid_person_id)
- VALUES (2200, 2, 1);
- INSERT INTO Bid (bid_value, bid_lot_id, bid_person_id)
- VALUES (3500, 2, 2);
- INSERT INTO Bid (bid_value, bid_lot_id, bid_person_id)
- VALUES (200000, 3, 1);
- INSERT INTO Bid (bid_value, bid_lot_id, bid_person_id)
- VALUES (255000, 3, 3);
Mit problem består så i at jeg gerne vil have trukket rækker ud, sådan så jeg får en for hver 'lot', med det højeste 'bid' og denne persons navn.
Et eksempel er f.eks. at Lot med ID 1 (Super Nintendoen), der er højest bydene personen Martin Rohwedder (person id 1) med buddet 500 (som er det nuværende højeste bud).
Lot ID 2 er højest bydene Peter Nielsen (person id 2) med buddet 3500.
Lot ID 3 er højest bydende Tanja Larsen med buddet 255000.
Jeg vil gerne have data ud som følgende
lot_id bid_value person_name
1 500 Martin Rohwedder
2 3500 Peter Nielsen
3 255000 Tanja Larsen
Altså så den kun viser navnet på den person der har lavet det højeste bud, for hver enkelt lot.
Har prøvet at lege med MAX() funktionen i MySQL, men kan ikke få den til at gøre som jeg vil have. Håber at nogle kan hjælpe mig med at nå mit mål, og får det ønskede output ud.
Indlæg senest redigeret d. 22.03.2012 23:53 af Bruger #4487