Einzelnen Beitrag anzeigen

Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
265 Beiträge
 
Delphi 11 Alexandria
 
#1

Redundante Datenbankabfrage?

  Alt 25. Nov 2010, 14:15
Datenbank: Firebird • Version: 2.5 • Zugriff über: ISQL
Guten Tag,

ich habe eine Datenbank die folgendermaßen aufgebaut ist.
SQL-Code:
CREATE TABLE restaurants (
id INT,
constraint restaurants_id primary key(id));

CREATE TABLE gerichte (
id INT,
restaurant_id INT NOT NULL,
constraint gerichte_id primary key(id));

CREATE TABLE bestellungen (
id INT,
gericht_id INT NOT NULL,
constraint bestellungen_id primary key(id));
Nun möchte ich ausgeben bekommen, welche Restaurants.id's alle in der Bestellung auftauchen.
D.h Wenn es 5 Restaurants in der Datenbank gibt. Und aber nur bei Restaurant 1 und 3 etwas bestellt wurde, soll auch nur 1 und 3 ausgegeben werden und diese auch nur jeweils 1x.

Ausgabe soll dann so aussehen:
SQL-Code:
          ID
============
           1
           3
Ich habe es folgendermaßen versucht:
SELECT restaurants.id FROM restaurants,bestellungen,gerichte WHERE gerichte.id = bestellungen.gericht_id AND gerichte.restaurant_id = restaurants.id; Doch dort kommt folgendes raus:
SQL-Code:
          ID
============
           0
           0
           0
           1
           1
           1
           1
           1
           1
           1
Es liegt an der fehlenden Beziehung zwischen Bestellungen <-> Restaurants oder?
Oder kann man das anders lösen?

Danke für eure Hilfe
Delphi programming is awesome.
  Mit Zitat antworten Zitat