Sven Rautenberg: SQL-Abfrage

Beitrag lesen

Moin!

Mir ist nicht klar wie ich in der Abfrage select * from tabelle where ort='Bonn' AND moehren='1'; dann statt den moehren die kirschen rein bekomme. Beim Ort ist mir klar den übergebe ich als Variable aus dem Pull-Down-Menü.

Das Problem ist, dass du für die ganzen Obst- und Gemüsesorten eigene Spalten in der Tabelle angelegt hast.

Das ist solange in Ordnung, wie von vornherein absolut felsenfest festgelegt ist, welche Gemüse man eintragen und verwenden kann. Da aber Gemüse und Obst Dinge sind, die sich im Laufe der Zeit auch mal verändern (neue, exotische Sorten sind plötzlich in, oder generell soll die Auswählbarkeit der Tabelle erweitert werden), ist dein Ansatz nur als extrem ungünstig zu bezeichnen.

Für deine an sich simpel aussehende Anwendung benötigst du schon insgesamt DREI Tabellen in der Datenbank:
In der ersten Tabelle "vendor" stehen vendor_id, Name und Ort.
In der zweiten Tabelle "food" stehen food_id und Name (des Gemüses)
In einer dritten Tabelle "vendor_food" werden Verkäufer und Gemüse verknüpft: vendor_id und food_id stehen drin.

Jetzt kannst du in der ersten Tabelle alle deine Händler anlegen.

In der zweiten Tabelle legst du alle auswählbaren bzw. existierenden Gemüse an.

Und in der dritten Tabelle trägst du ein, welche vendor_id welche food_id hat.

Die Abfrage nach den Kirschen in Bonn oder den Äpfeln in Köln erfolgt dann über diese Verknüpfungstabelle. Dazu werden JOINs verwenden, also Abfragen, die mehrere Tabellen einer Datenbank miteinander verknüpfen.

- Sven Rautenberg

--
My sssignature, my preciousssss!