2017-05-18 3 views
-1

Ich bin ein wenig verloren mit SQL. Ich versuche, Werte von referenzierten Tabellen zu erhalten, und ich muss 6 Tabellen durchlaufen, aber ich bekomme kein Ergebnis. Das ist mein Code:SQL SELECT QUERY RELATION TABLES

SELECT v.VEHICLEPLATE, p.NAME 
    FROM ITV i, VEHICLE v, BUYS b, PERSON p, CENTER c, WORKER w 
    WHERE 
    w.NICK = 'PEPE' AND 
    c.ID = w.CENTERID AND 
    v.VEHICLEPLATE = i.VEHICLEPLATE AND 
    v.VEHICLEPLATE = b.VEHICLEPLATE AND 
    p.ID = b.PERSON; 

Ich möchte alle Datensätze in ITV wo PEPE funktioniert.

Jemand kann mir helfen oder mich orientieren?

Vielen Dank.

+0

Willkommen bei SO. Lesen Sie [ask] und zeigen Sie das Tabellenschema, die Beispieldaten und die erwartete Ausgabe an – OldProgrammer

Antwort

1

Verwenden Sie Ihre Tabellen explizit schließt sich statt implizit, wie folgt aus:

SELECT v.VEHICLEPLATE, p.NAME 
FROM ITV i 
INNER JOIN VEHICLE v ON v.VEHICLEPLATE = i.VEHICLEPLATE 
INNER JOIN BUYS b ON v.VEHICLEPLATE = b.VEHICLEPLATE 
INNER JOIN PERSON p ON p.ID = b.PERSON 
INNER JOIN CENTER c --Need join condition here 
INNER JOIN WORKER w ON c.ID = w.CENTERID 
WHERE w.NICK = 'PEPE'; 

Es ist viel einfacher zu lesen, und die implizite Art, die Sie in Ihrer Frage haben wird abgeschrieben.

Jetzt können Sie sehen, dass Sie Ihre Join-Bedingung für INNER JOIN CENTER C fehlen. Sie können weitere Probleme haben, aber beginnen Sie hier und wenn es immer noch nicht richtig ist, geben Sie uns Ihre aktuellen Ergebnisse und Ihre erwarteten Ergebnisse.