SQL Abfrage: Zusammensetzung aus drei Tabellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

SQL Abfrage: Zusammensetzung aus drei Tabellen

Beitrag von badera » 27.12.2006 16:19:30

Ich habe eine Frage zu einer MySQL-Abfrage. Ich weiss nicht genau, wie folgende Problematik zu lösen ist:

Ich habe drei Tabellen:
Tabelle "titellist"

Code: Alles auswählen

====================
num* |  title
====================
P01  | My-Titel 1
P02  | My-Titel 2
P03  | My-Titel 3
P04  | My-Titel 4
Tabelle "exportlist"

Code: Alles auswählen

====================
id*  | num  | data
====================
id1  | P01  | 0
id2  | P01  | 1
id3  | P02  | 0
id4  | P02  | 0
id5  | P02  | 0
id6  | P02  | 1
id7  | P03  | 0
Tabelle "contentlist"

Code: Alles auswählen

=====================
id*  | num  | content
=====================
id2  | P01  | content1
id6  | P02  | content2
id7  | P03  | content3
Ich möchte folgendes Selektieren: Ich möchte die Spalte "num" aus "exportlist", wenn exportlist.id = contentlist.id UND exportlist.data = 1.
Die Abfrage dazu:

Code: Alles auswählen

SELECT exportlist.num FROM contentlist,exportlist  WHERE contentlist.id = exportlist.id AND exportlist.data='1'
Nun möchte ich zu exportlist.num noch gleich der Titel aus der Tabelle "titellist" haben, und zwar habe ich ja bereits "NUM", so dass einfach noch titlelist.title selektiert werden müsste. Aber wie?
Sowas hier; aber wie fertig??

Code: Alles auswählen

SELECT exportlist.num, titellist.title FROM contentlist,exportlist,titellist  WHERE contentlist.id = exportlist.id AND exportlist.data='1' ....???...
Besten Dank schon im Voraus!

JPT
Beiträge: 96
Registriert: 09.03.2006 17:46:20
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von JPT » 27.12.2006 16:30:51

Code: Alles auswählen

SELECT exportlist.num, titellist.title FROM contentlist,exportlist,titellist  WHERE contentlist.id = exportlist.id AND exportlist.data='1'  AND titellist.num = exportlist.num ;
Der Query müsste seine Arbeit tun.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 27.12.2006 16:31:55

wenn du hier auch einen "inner join" benötigst, dann so:

Code: Alles auswählen

WHERE contentlist.id = exportlist.id AND exportlist.data='1' and exportlist.num = titellist.num
Gruß
gms

Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Beitrag von badera » 27.12.2006 17:18:18

Besten Dank!! Das funktioniert ja prima!

Antworten