Verknüpfungstabelle AND Abfrage

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6768
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Verknüpfungstabelle AND Abfrage

Beitrag von af0815 »

Code: Alles auswählen

Nun möchte ich jene Musikstücke abfragen, die sowohl den "classic" als auch den "jazz" Stil zugewiesen haben.
Sorry, ich habe das falsch gedeutet.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10867
Registriert: Mo 11. Sep 2006, 19:01

Re: Verknüpfungstabelle AND Abfrage

Beitrag von theo »

af0815 hat geschrieben: Bei deinem JOIN sind IMHO zuviele drinnen.

werke <-> werke_stile <-> stile
Ich weiß nicht genau, wie du das meinst, aber ich brauche die "stile" Tabelle für Übersetzungen, deshalb kann ich die nicht streichen.
Für die reine Setzung der Stils wäre sie natürlich überflüssig.

Danke.

Benutzeravatar
theo
Beiträge: 10867
Registriert: Mo 11. Sep 2006, 19:01

Re: Verknüpfungstabelle AND Abfrage

Beitrag von theo »

P.S. Grundsätzlich könnte man auch mit dem SET Typ an das Problem herangehen.
http://download.nust.na/pub6/mysql/tech ... atype.html
Übersetzungen hätte ich dann anders reingelinkt.

Was hält ihr davon?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6768
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Verknüpfungstabelle AND Abfrage

Beitrag von af0815 »

theo hat geschrieben:Was hält ihr davon?
Genaugenommen nichts, weil man sich mit SETs einschränkt und die Lösung von dir mit dem M:N Tabelle (werke_stile) schon eine sehr saubere Lösung ist und auch auf allen Servern läuft. Ich habe im Studio dann gleich gesehen warum ich vorher quatsch geschrieben habe - habe ich deswegen rausgenommen.

Ich bin ganz einfach am falschen Pferd gesessen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6768
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Verknüpfungstabelle AND Abfrage

Beitrag von af0815 »

Mit einer View und einem selfjoin geht es auch
das sit die View mit dem Namen v_werkstil

Code: Alles auswählen

SELECT        dbo.stile.stilname, dbo.werke.titel
FROM            dbo.werke_stile INNER JOIN
                         dbo.werke ON dbo.werke_stile.werk_id = dbo.werke.werk_id INNER JOIN
                         dbo.stile ON dbo.werke_stile.stil_id = dbo.stile.stile_id
 
dann geht es mit

Code: Alles auswählen

SELECT        a.titel
FROM            dbo.v_werkstil AS a INNER JOIN
                         dbo.v_werkstil AS b ON a.titel = b.titel
WHERE        (a.stilname = 'classic') AND (b.stilname = 'jazz')
 
ist genaugenommen die Lösung von theo
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10867
Registriert: Mo 11. Sep 2006, 19:01

Re: Verknüpfungstabelle AND Abfrage

Beitrag von theo »

af0815 hat geschrieben:
theo hat geschrieben:Was hält ihr davon?
Genaugenommen nichts, weil man sich mit SETs einschränkt und die Lösung von dir mit dem M:N Tabelle (werke_stile) schon eine sehr saubere Lösung ist und auch auf allen Servern läuft. Ich habe im Studio dann gleich gesehen warum ich vorher quatsch
Naja, wäre halt "quick and dirty".
Wie immer: Wenn man weiß, was man tut und mit den Beschränkungen leben kann, kann es eine Abkürzung sein.

Danke und schönen Sonntag.

Antworten