Nach Status sortieren

mC pAiN

Erfahrenes Mitglied
Hallo,

ich habe zwei Tabellen in meiner MySQL-DB:

gekauft
PHP:
CREATE TABLE `gekauft` (
  `kunden_id` int(11) NOT NULL,
  `produkt_id` int(11) NOT NULL,
  `menge` int(3) NOT NULL,
  `datum` date NOT NULL default '0000-00-00',
  `zahlungsart` varchar(20) NOT NULL default '',
  `versandart` varchar(20) NOT NULL default '',
  `status` varchar(30) NOT NULL default ''
) TYPE=MyISAM;

produkt
PHP:
CREATE TABLE `produkt` (
  `produkt_id` int(11) NOT NULL auto_increment,
  `produkt_name` varchar(78) NOT NULL default '',
  `produkt_anummer` varchar(32) NOT NULL default '0',
  `produkt_preis` decimal(15,2) NOT NULL default '0.00',
  `produkt_vkosten` varchar(64) default NULL,
  PRIMARY KEY  (`produkt_id`)
) TYPE=MyISAM;


Die Tabelle gekauft bezieht sich auf produkt. Ich möchte jetzt die Datensätze nach dem Attribut 'status' sortieren und alles ausgeben (also auch die entsprechenden Datensätze aus Tabelle produkt).
Ich habe mal folgendes versucht, aber so habe ich ja nicht die Verbindung zur anderen Tabelle:

PHP:
SELECT * from gekauft WHERE status LIKE 'Status_A' ORDER BY status

Wie geht es richtig
 
Hallo

Du rufts in der Wherebedingung like 'status_A' auf. Was willst Du denn da beim status noch sortieren? hmmm... Sinn würde in dem Falle ein anderes Sortierkriterium machen. z.B. produkt_name.

Ansonsten kannst Du beide Tabellen wie folgt zusammenfügen. Der left join gibt Dir nun alle Produkte aus, auch die, die nicht mit verkauft verbunden sind. Ansonsten sollte man den inner join verwenden.

SELECT *
FROM produkt
LEFT JOIN gekauft
USING ( produkt_id )
WHERE gekauft.status ='status_A'
ORDER BY Feld
 
Zuletzt bearbeitet:
Zurück