Heim >Datenbank >MySQL-Tutorial >Warum gibt meine SQL-Abfrage „TabelleD ist unbekannt' zurück, wenn ich vier Tabellen anhand der ID verbinde?
Mehrere SQL-Tabellen über IDs verbinden: Fehlerbehebung beim Fehler „Tabelle unbekannt“
Diese Anleitung befasst sich mit einem häufigen Problem beim Zusammenführen mehrerer SQL-Tabellen mithilfe von IDs. Sie haben die Tabellen A, B und C erfolgreich verknüpft, aber das Hinzufügen von Tabelle D führt zu der Fehlermeldung „TabelleD ist unbekannt“. Dieser Fehler weist auf einen falschen Verweis auf Tabelle D in Ihrer SQL-Abfrage hin. Um dieses Problem zu beheben, müssen Sie Tabelle D korrekt mit den vorhandenen verbundenen Tabellen verknüpfen.
Die Lösung
Die korrigierte SQL-Anweisung zur Einbeziehung von Tabelle D lautet:
<code class="language-sql">SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM TableA JOIN TableB ON TableB.aID = TableA.aID JOIN TableC ON TableC.cID = TableB.cID JOIN TableD ON TableD.dID = TableA.dID WHERE DATE(TableC.date) = CURDATE();</code>
Diese verbesserte Abfrage verwendet TableA
als Anker. Es verbindet TableB
mit aID
, TableC
mit cID
und schließlich TableD
mit dID
(vorausgesetzt, dID
existiert sowohl in TableA
als auch in TableD
). Die WHERE
-Klausel filtert die Ergebnisse so, dass nur Einträge enthalten sind, bei denen TableC.date
mit dem aktuellen Datum übereinstimmt. Beachten Sie die Verwendung von CURDATE()
, die aus Gründen der Klarheit und Datenbankkompatibilität im Allgemeinen gegenüber date(now())
bevorzugt wird.
Wichtige Überlegungen:
date(now())
in einigen Datenbanken funktioniert, ist CURDATE()
eher standardmäßig und portierbar.Indem Sie diese Schritte befolgen und die Existenz und Benennung Ihrer ID-Spalten überprüfen, sollten Sie alle vier Tabellen erfolgreich verknüpfen.
Das obige ist der detaillierte Inhalt vonWarum gibt meine SQL-Abfrage „TabelleD ist unbekannt' zurück, wenn ich vier Tabellen anhand der ID verbinde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!