Avanceret SELECT
Hej eksperter,Jeg er igang med at lave en internet butik, og i den forbindelse har jeg 3 database tabeller:
vareinfo:
CREATE TABLE `vareinfo` (
`VareNummer` varchar(8) NOT NULL default '0',
`Pris` float(6,0) NOT NULL default '0',
`Betegnelse` varchar(60) NOT NULL default '',
PRIMARY KEY (`VareNummer`),
UNIQUE KEY `VareNummer` (`VareNummer`)
) TYPE=MyISAM
I denne tabel gemmes informationerne om de forskellige varer, her er det varenummer, pris og betegnelse.
tilbud:
CREATE TABLE `tilbud` (
`VareNummer` varchar(8) NOT NULL default '',
`StartDato` datetime NOT NULL default '0000-00-00 00:00:00',
`SlutDato` datetime NOT NULL default '0000-00-00 00:00:00',
`Pris` float(6,0) NOT NULL default '0',
PRIMARY KEY (`VareNummer`),
UNIQUE KEY `VareNummer` (`VareNummer`)
) TYPE=MyISAM
I denne tabel kan man oprette et varenummer der skal være på tilbud, det skal være et varenummer der eksisterer i vareinfo. Desuden skal man angive en slut og startdato for tilbudet, samt en tibudspris.
varekurv:
CREATE TABLE `varekurv` (
`IndexID` int(11) unsigned zerofill NOT NULL auto_increment,
`KurvID` varchar(50) default NULL,
`VareNummer` varchar(8) NOT NULL default '',
`Antal` smallint(4) NOT NULL default '1',
PRIMARY KEY (`IndexID`)
) TYPE=MyISAM
Denne tabel holder styr på indkøbskurven indtil man skal betale.
Mit problem er følgende:
Hvordan får jeg lavet en SELECT der vælger alle varer fra varekurv hvor KurvID er lig et givent kurvID, hvor den desuden henter den prisen til hvert varenummer i vareinfo hvis varen ikke er på tilbud og i tilbud hvis varen er på tilbud og datoen er imellem start og slut dato?
Jeg har før brugt følgende SELECT, inden jeg ville implementere tilbudsfunktionen:
"SELECT vareinfo.Betegnelse,
vareinfo.Pris, vareinfo.VareNummer,
varekurv.Antal,
vareinfo.Pris * varekurv.Antal as TotalPris
FROM vareinfo, varekurv WHERE
vareinfo.VareNummer = varekurv.VareNummer
AND varekurv.KurvID = '"+KurvID+"'
Dette fungerede fint, men jeg kan ikke gennemskue hvordan jeg skal kunne få tilbudsfunktionen ind i den?
På forhånd tak
Christian Agerbeck
