2017-10-26 1 views
0

Ich versuche, die die Schüler Nummer & Namen mit dem Kurscode & Namen für Studenten zu erhalten, die eine Klasse unter 40 hat das ist, was ich habeInnenverbindung funktioniert nicht. Ausgabe zu wiederholen Reihen

   SELECT S.name, S.no, C.code, C.name, T.grade 
       FROM student S INNER JOIN course C INNER JOIN take T 
       WHERE grade <40; 

Es ist die Noten Ausgabe von unter 40, aber es gibt 128 Zeilen zurück, die den Namen und die Nummer aller anzeigen, die sie wiederholen.

Sorry, wenn das falsch ist, aber ich bin ein Anfänger.

+0

* Niemals * Kommas in der 'FROM'-Klausel verwenden. * Verwenden Sie immer die richtige explizite 'JOIN'-Syntax. –

+0

Welche Tabelle gehört zur Klasse? –

+0

@NilesTanner-Klasse befindet sich in der Take-Tabelle. – whocares6773

Antwort

0

Sie müssen die Bedingungen, die die Tabellen miteinander in Beziehung stehen:

SELECT S.name, S.no, C.code, C.name, T.grade 
FROM student AS s 
JOIN take AS t ON t.student_no = s.no 
JOIN course AS c ON t.course_code = c.code 

ersetzen student_no und course_code die tatsächlichen Fremdschlüsselspalte in der take Tabelle.

+0

Erhalte den Fehler "Fehlercode: 1054. Unbekannte Spalte 't.student_no' in 'on-Klausel" – whocares6773

+0

Ich musste einige der fehlenden Spalten, ersetzen Sie sie durch die tatsächlichen Spalten in Ihrer Tabelle. – Barmar

+0

Vielen Dank für die Hilfe hat alles funktioniert jetzt Sie Legende. – whocares6773

0
Simple syntax refer it 



SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName 
FROM ((Orders 
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID) 
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID); 
+0

Ich benutze 3 Tabellen, also wohin geht table3? – whocares6773

+0

Finden Sie oben Syntax –