[SQL] Problem mit verschachtelter SQL-Abfrage

jk8s

Grünschnabel
Hallo Leute!

Ich habe folgende Datenbank:

Connection (MNr, PNr, JNr) -> Verbindet Movie, Person und Job Tabellen, sprich welche Person (PNr) hatte welchen Job (JNr) in welchem Film (MNr).
Genre (GNr, GName) -> Genre des Movies (bei meinem Probl eig. ohne Bedeutung, vollständigkeitshalber aber angeführt)
Job (JNr, JName) -> Tablle in denen die verschiedenen Jobs gespeichert sind (Actor, Director, Producer, ...).
Movie (MNr, GNr, MTitle, MYear) -> Movie-Tabelle mit Filminfos
Person (PNr, PName, PBirthday, PSex) -> Tabelle mit Personen die in der Filmbranche tätig sind.

Die Tabelle ist nur zu Übungszwecken erstellt worden und mit ein paar Datensätzen gefüllt.

Nun zu meinem Problem. Ich habe ein Problem mit einer verschachtelten SQL-Abfrage. Ich würde gerne die Anzahl der Filme wissen, in dem Johnny Depp ein Actor ist. Ich will einen puren SQL Code haben, also ohne PHP, oder anderen Programmier/Skriptsprachen.

So würde ich die Abfrage formulieren, die meinen SQL-Wissen nach korrekt sein müsste, doch wenn ich sie per mySQL bzw. per phpmyadmin ausführe, kommt eine Fehlermeldung, das eine Fehler im SQL-Syntax sei.
Code:
SELECT COUNT(MNr) FROM Connection WHERE 
JNr = ( SELECT JNr FROM Job WHERE JName = “Actor” ) 
AND PNr = ( SELECT PNr FROM Person WHERE PName = “Johnny Depp” )
Wenn ich die 2 Subqueries alleine durchführe bekomme ich jeweils die richtige JNr bzw. PNr als Ergebnis.

Schonmal ein großes Dankeschön im vorraus.

mfg
jk8s
 
Oh.. Sorry, ganz vergessen, hier ist die komplette Fehlermeldung:

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT JNr FROM Job WHERE JName = 'Actor' ) AND PNr = ( SELECT

mfg
jk8s
 
Zuletzt bearbeitet:
Was für eine MySQL Version hast du denn? Nicht alle unterstützte Subqueries.

Ich würde das sowieso über ein JOIN machen

SQL:
SELECT COUNT(MNr) 
FROM Connection c 
LEFT JOIN Job j USING (JNr)
LEFT JOIN Person p USING (PNr)
WHERE 
j.JName = "Actor" AND p.PName = "Johnny Depp"
 
Danke für die Antwort, daran hatte ich garnicht gedacht, dass Subqueries evt. nicht unterstüzt werden. Ich benutze die mySQL Version 4.0.10-gamma und diese unterstützt laut dem Manual keine Subqueries.

Das Kapitel mit den JOINs hab ich noch nicht angeschaut, ich weiß nur was ein JOIN ist und ich wollte eig. ja nur wissen, ob der angebene SQL-Code stimmt, da es ja eine Fehlermeldung beim ausführen des Codes gab, obwohl er ja meines Wissens nach syntaktisch richtig ist. Das hat sich nun aber erledigt.

mfg
jk8s
 

Neue Beiträge

Zurück