Hi
ich habe ein Problem mit einer min()/max() abfrage bei der ich alle Spaltenwerte brauche
und mir Mysql zwar den richtigen min()/max() anzeigt aber die werte der anderen Spalten
vom ersten Eintrag übernimmt.
Kurzer Überblick:
Tabelle: Artikel+inhalt
Code:
CREATE TABLE IF NOT EXISTS `artikel` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
)
INSERT INTO `artikel` (`id`, `name`) VALUES (1, 'Handy');
Tabelle_ Liste+Inhalt
Code:
CREATE TABLE IF NOT EXISTS `liste` (
`id` int(11) NOT NULL auto_increment,
`aid` int(11) NOT NULL,
`anzahl` int(11) NOT NULL,
`preis` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`)
)
INSERT INTO `liste` (`id`, `aid`, `anzahl`, `preis`) VALUES
(1, 1, 1, 1.00),
(2, 1, 2, 2.00);
Nun versuche ich mit folgender Select abfrage
Code:
SELECT a.name,b.anzahl,max(b.preis) as preis FROM artikel as a
inner join liste as b
on b.aid=a.id group by a.name
folgendes zu erreichen
name anzahl preis
Handy 2 2.00
Ausgabe ist aber
name anzahl preis
Handy 1 2.00
Wie ihr seht übernimmt er die "
anzahl" vom ersten Eintrag in der DB
und nicht von dem max(preis).
Ich weis das min()/max() wie ein subquery zu verstehen sind und das Ergebnis
so angefragt auch richtig beantwortet wird. Nur hänge ich an der Lösung ohne
eine weitere abfrage nach der richtigen anzahl zu machen.
Jemand ne idee?