AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfrage über mehrere Tabellen...
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage über mehrere Tabellen...

Ein Thema von mjenke · begonnen am 4. Jun 2004 · letzter Beitrag vom 4. Jun 2004
 
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Abfrage über mehrere Tabellen...

  Alt 4. Jun 2004, 08:32
Guten Morgen, alle miteinander!

Nehmen wir mal an, ich hätte eine Paradox7-Datenbank, die ich mit einer Delphi4-Applikation anspreche. Nehmen wir weiter an, in dieser Datenbank gäbe es drei Tabellen:

- tfilm
- tcastcrew
- tdarsteller

Aufbau:

tfilm
-----
Id - Integer
Titel - Alpha (50)

tcastcrew
---------
Id - Integer
Nachname - Alpha (50)
Vorname - Alpha (50)

tdarsteller
-----------
Id - Integer
IdFilm - Integer
IdCast - Integer

Die Tabellen tfilm und tcastcrew beinhalten textliche Informationen, während die Tabelle tdarsteller als Verknüpfungstabelle zwischen den beiden dient.

Mit

SQL-Code:
SELECT DISTINCT t1.Id, t1.Titel FROM
tfilm t1
LEFT JOIN tdarsteller t2 ON t1.Id = t2.IdFilm
LEFT JOIN tcastcrew t3 ON t3.Id = t2.IdCast
WHERE t3.Vorname + " " + t3.Nachname LIKE "%Harrison Ford%"
ORDER BY Titel
beispielsweise könnte ich aus dieser Datenbank alle Filmtitel heraussuchen, zu denen "Harrison Ford" als Darsteller eingetragen ist.

Jetzt zu meiner eigentlichen Frage: Kann mir jemand auf die Sprünge helfen, wie ich die Abfrage zu formulieren habe, wenn ich mehrere Schauspieler angeben möchte und will, dass sie ALLE in diesem Film mitspielen? Also beispielsweise, dass ich alle Filme heraussuchen möchte, in denen "Harrison Ford" UND "Mark Hamill" mitspielen?

Mit

SQL-Code:
SELECT DISTINCT t1.Id, t1.Titel FROM
tfilm t1
LEFT JOIN tdarsteller t2 ON t1.Id = t2.IdFilm
LEFT JOIN tcastcrew t3 ON t3.Id = t2.IdCast
WHERE
    t3.Vorname + " " + t3.Nachname LIKE "%Harrison Ford%"
AND t3.Vorname + " " + t3.Nachname LIKE "%Mark Hamill%"
ORDER BY TITEL
funktioniert es nicht, da die Tabelle tdarsteller ja jeweils EINE Verbindung zwischen tfilm und tcastcrew herstellt. Ich müsste aber ja ALLE Verbindungen überprüfen. Zwar liesse sich so etwas programmtechnisch erschlagen, aber den Aufwand möchte ich nicht treiben (macht schliesslich auch alles wieder ein wenig langsamer). Ich würde es gerne mit einer Query schaffen, allerdings reichen meine SQL-Kenntnisse dafür nicht aus...


Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz