Hallo,
ich zermartere mir gerade das Gehirn nach einem Select-Statement (MySQL-Datenbank), das folgendes leisten soll:
Tabelle 1:
id_tab1 (fortlaufende Nummer, UNIQUE, NOT NULL, PRIMARY KEY)
Material (string, NOT NULL)
Breite (double)
Laenge (double)
Hoehe (double)
Tabelle 2:
id_tab1 (id aus Tabelle 1, NOT NULL, PRIMARY KEY)
benutzer (string, NOT NULL, PRIMARY KEY)
Erklärung:
In Tabelle 1 werden verschiedene Materialien mit ihren Eigenschaften gespeichert.
Ein Benutzer hat die Möglichkeit, mehrere Materialien zu markieren. Welche Materialien der Benutzer markiert hat, wird in Tabelle 2 zusammen mit dem Benutzernamen gespeichert. Das heisst in Tabelle 2 kann jede ID und jeder Benutzername beliebig oft vorkommen, allerdings darf die Kombination ID/Benutzer nur einmal vorkommen. Der Primary Key setzt sich also aus zwei Feldern zusammen.
Nun mein Problem:
Ich moechte durch ein Select-Statement alle Datensaetze aus Tabelle 1 angezeigt bekommen (SELECT * FROM Tabelle1;) aber dieses Ergebnis soll so sortiert sein, dass alle Datensaetze, die ein bestimmter Benutzer markiert hat (SELECT id_tab1 FROM Tabelle2 WHERE benutzer='sandra';) am Anfang stehen.
Ich hoffe, ich habe mich einigermaßen klar ausgedrückt.
Bisher habe ich noch keine Lösung für dieses Problem gefunden. Vielleicht kann mir ja ein MySQL-Kenner unter Euch helfen.
Übrigens verarbeite ich die Daten mit PHP. Vielleicht hat ja jemand ein PHP-Workaround parat.
Liebe Gruesse aus Kaiserslautern,
Sandra
PS: Für SQL-Experten, die sich aber nicht mit MySQL auskennen - MySQL unterstützt keine Sub-Selects (falls man das damit lösen könnte)