Abfrage über 3 Tabellen mit mehreren Bedingungen

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Abfrage über 3 Tabellen mit mehreren Bedingungen

Postby tigi » 30. August 2007 11:28

Hallo zusammen

Ich hoffe, es kann mir jemand helfen. Ich habe verschiedene Abfragen, welche ich kombinieren muss:

Tabelle: schule
IDschule | name | status
1 | HWZ | 0
2 | ZHW | 0
3 | ETH | 0
4 | Uni.1 | 1
5 | Uni.2 | 0

Tabelle: benutzer
IDbenutzer | IDRschule
1 | 1
2 | 2
3 | 2
4 | 4
5 | 5

Tabelle: buch
IDbuch | IDRbenutzer | name | status
1 | 1 | Buch1 | 0
2 | 2 | Buch2 | 0
3 | 3 | Buch3 | 1
4 | 4 | Buch4 | 0


Nun brauche ich eine Abfrage, welche mir sämtliche Schulen ausgibt, die:

- "status = 0" haben

- in der Tabelle "benutzer" vorhanden sind (als IDRschule) und dabei:
- ein Buch in der Tabelle "buch" haben UND
- dieses jeweilige Buch "status = 0" hat


Diese Abfrage sollte in diesem Fall folgende Schulen ausgeben:

IDschule: 1 | HWZ
IDschule: 2 | ZHW

Die anderen Schulen erfüllen die verschiedenen Bedingungen nicht.

Kann mir jemand sagen, wie ich da vorgehen soll? Kann man mehrere JOIN-Abfragen verknüpfen?

Vielen Dank für die Hilfe!

Gruss Tigi
tigi
 
Posts: 2
Joined: 30. August 2007 11:23

Postby Stepke-DSL » 30. August 2007 11:51

Moin,

Ja, soweit ich weiß, kann man JOIN's verknüpfen.

MfG Stepke

Edit:

Hier nochwas zu JOIN's: http://www.sql-und-xml.de/sql-tutorial/tabellen-verknuepfen-mit-join.html
Stepke-DSL
 
Posts: 313
Joined: 12. July 2007 16:08
Operating System: Win XP Pro SP3 + SuSe Linux

Re: Abfrage über 3 Tabellen mit mehreren Bedingungen

Postby ManUnix » 30. August 2007 14:36

Hi tigi,

tigi wrote:Kann mir jemand sagen, wie ich da vorgehen soll?


das müsste Dein gewünschtes Ergebnis liefern:

Code: Select all
SELECT schule.IDschule,schule.name
FROM
       schule,benutzer,buch
WHERE
           schule.status='0'
       AND schule.IDschule=benutzer.IDRschule
       AND benutzer.IDbenutzer=buch.IDRbenutzer
       AND buch.status='0'

cu,
Manu
User avatar
ManUnix
 
Posts: 113
Joined: 16. April 2006 15:14

Postby tigi » 31. August 2007 10:37

Ich habe eine funktionierende Antwort erhalten:

SELECT schule.IDschule, schule.name FROM (schule INNER JOIN benutzer ON schule.IDschule = benutzer.IDRschule) INNER JOIN buch ON benutzer.IDbenutzer = buch.IDRbenutzer WHERE (((schule.status)=0) AND ((buch.status)=0));

Vielen Dank an Marc und alle die geholfen haben!

Gruss Tigi
tigi
 
Posts: 2
Joined: 30. August 2007 11:23


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 4 guests