Verbinden Sie drei der Tabelle in JDBC
Ich habe diesen code und bekomme immer einen syntax-Fehler.
query = "SELECT * "+
"FROM Product " +
"INNER JOIN Orders ON (Product.ItemID=Orders.ItemID) " +
"LEFT OUTER JOIN SupplierProduct ON (Orders.ItemID=SupplierProduct.ItemID) "+
"WHERE Product.Receiver = 'Fred' " +
"ORDER BY Product.ItemName";
DefaultTableModel data = table.getQuery(query);
Ich habe auch versucht ein INNER JOIN
an die Stelle der LEFT OUTER JOIN
. Die Fehler ich erhalte, was ich immer versuche ist.
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '(Product.ItemID=Orders.ItemID) LEFT OUTER JOIN SupplierProduct ON (Orders.ItemID=SupplierProduct.ItemID'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
Was übersehe ich hier oder wie kann ich an drei der Tabelle.
Werfen Sie einen Blick auf: stackoverflow.com/questions/10852499/...
InformationsquelleAutor Themonkey180 | 2013-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit der Klammer wie diese:
InformationsquelleAutor BWS
Sieht es aus wie JDBC können werden Schwierigkeiten haben, analysieren Sie die Reihenfolge der Verknüpfungen. Das ist wahrscheinlich eine spezifische Frage an die Datenbank-engine, die Sie interagieren mit, aber in jedem Fall, einen Motor sollte in der Lage sein, um eine Analyse der Abfrage korrekt, wenn Sie Klammern, um die Reihenfolge der join-Operationen:
Mehr details:
Grundsätzlich, die Idee ist zu trennen in jedem join, so dass es interpretiert werden kann, die mehr oder weniger als stand-alone-Tabelle. Dies dient mehr ganz unterscheiden
vom
Beachten Sie auch, dass es eine chance gibt, dass Sie benötigen, um alias das Ergebnis des ersten join, wie in:
InformationsquelleAutor Jeffrey Blake