messmar
Erfahrenes Mitglied
Guten Abend,
kann mir bitte Jemand evtl. sagen, ob die folgende Query vom Syntax hier richtig ist?
Vielen Dank im Voraus und Gruß
Messmar
<sql:query var="showButton" dataSource="${MyTestDrive2}" sql="SELECT c.carname, c.pricefrom, c.priceto, c.imageurl, c.description, t.name, b.logourl, b.name
FROM car c,
types t,
car_type ct,
brand b
WHERE t.name = '${choosen}'
and (${firstEntry} < c.pricefrom and ${secondEntry} >
c.pricefrom)
or (${firstEntry} < c.priceto and ${secondEntry} >
c.priceto)
and c.carid = ct.carid
and t.typeid = ct.typeid
and c.brandid = b.brandid" />
${firstEntry} and ${secondEntry} sind zwei variablen, wo ich den Value eines textfeldes in zwei teilen gesplitet habe.
In ${firstEntry} wird der pricefrom gespeichert und in ${secondEntry} der priceto.
Hierbei die Options aus dem Select-Feld:
<select>
<option value="500-9000"> <9</option>
<option value="9000-12000">9-12</option>
<option value="23000-30000" >23-30</option>
<option value="12000-17000" >12-17</option>
<option value="17000-23000" >17-23</option>
<option value="30000-200000" >30+</option>
</select>
Der Hintergrund ist, dass es bei einer Tabelle für Autos, einrn Wagen unter zwei Pries-Kategorien vorhanden sein.
z.B.
Passat unter der Preis-Kategorie: 12000 - 17000 (Kostet in diesem Fall
135000)
Passat unter der Preis-Kategorie 9000 – 12000 (kostet in diesem Fall
9500)
Die Tabelle sind flogendermaßen gebaut:
CREATE TABLE `brand` (
`BrandId` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(60) NOT NULL,
`LogoUrl` varchar(60) NOT NULL,
`Priority` int(2) NOT NULL,
PRIMARY KEY (`BrandId`)
);
CREATE TABLE `car` (
`CarId` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(100) NOT NULL,
`PriceFrom` decimal(10,0) unsigned NOT NULL default '0',
`PriceTo` decimal(10,0) NOT NULL default '0',
`BrandId` int(10) unsigned NOT NULL default '0',
`ImageUrl` varchar(200) NOT NULL,
`Description` text NOT NULL,
PRIMARY KEY (`CarId`)
);
DROP TABLE IF EXISTS `car_type`;
CREATE TABLE `car_type` (
`TypeId` int(10) unsigned NOT NULL,
`CarId` int(10) unsigned NOT NULL,
PRIMARY KEY (`TypeId`,`CarId`)
);
CREATE TABLE `types` (
`TypeId` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(60) NOT NULL,
PRIMARY KEY (`TypeId`)
);
kann mir bitte Jemand evtl. sagen, ob die folgende Query vom Syntax hier richtig ist?
Vielen Dank im Voraus und Gruß
Messmar
<sql:query var="showButton" dataSource="${MyTestDrive2}" sql="SELECT c.carname, c.pricefrom, c.priceto, c.imageurl, c.description, t.name, b.logourl, b.name
FROM car c,
types t,
car_type ct,
brand b
WHERE t.name = '${choosen}'
and (${firstEntry} < c.pricefrom and ${secondEntry} >
c.pricefrom)
or (${firstEntry} < c.priceto and ${secondEntry} >
c.priceto)
and c.carid = ct.carid
and t.typeid = ct.typeid
and c.brandid = b.brandid" />
${firstEntry} and ${secondEntry} sind zwei variablen, wo ich den Value eines textfeldes in zwei teilen gesplitet habe.
In ${firstEntry} wird der pricefrom gespeichert und in ${secondEntry} der priceto.
Hierbei die Options aus dem Select-Feld:
<select>
<option value="500-9000"> <9</option>
<option value="9000-12000">9-12</option>
<option value="23000-30000" >23-30</option>
<option value="12000-17000" >12-17</option>
<option value="17000-23000" >17-23</option>
<option value="30000-200000" >30+</option>
</select>
Der Hintergrund ist, dass es bei einer Tabelle für Autos, einrn Wagen unter zwei Pries-Kategorien vorhanden sein.
z.B.
Passat unter der Preis-Kategorie: 12000 - 17000 (Kostet in diesem Fall
135000)
Passat unter der Preis-Kategorie 9000 – 12000 (kostet in diesem Fall
9500)
Die Tabelle sind flogendermaßen gebaut:
CREATE TABLE `brand` (
`BrandId` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(60) NOT NULL,
`LogoUrl` varchar(60) NOT NULL,
`Priority` int(2) NOT NULL,
PRIMARY KEY (`BrandId`)
);
CREATE TABLE `car` (
`CarId` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(100) NOT NULL,
`PriceFrom` decimal(10,0) unsigned NOT NULL default '0',
`PriceTo` decimal(10,0) NOT NULL default '0',
`BrandId` int(10) unsigned NOT NULL default '0',
`ImageUrl` varchar(200) NOT NULL,
`Description` text NOT NULL,
PRIMARY KEY (`CarId`)
);
DROP TABLE IF EXISTS `car_type`;
CREATE TABLE `car_type` (
`TypeId` int(10) unsigned NOT NULL,
`CarId` int(10) unsigned NOT NULL,
PRIMARY KEY (`TypeId`,`CarId`)
);
CREATE TABLE `types` (
`TypeId` int(10) unsigned NOT NULL auto_increment,
`Name` varchar(60) NOT NULL,
PRIMARY KEY (`TypeId`)
);