2017-06-30 3 views
3
"SELECT `articles`.`name`, `articles`.`description`,`articles`.`startPrice`,`articles`.`creationDate`," 
         + "`bids`.`date`, `bids`.`price`,`bids`.`userId`" 
         + " FROM `articles` LEFT JOIN `bids` ON `articles`.`id` = `bids`.`articleId`" 
         + " WHERE 1" 

java.sql.SQLException: Spalte '`articles`.`id`' nicht gefunden.Spalte nicht in Links gefunden Join

bids Tabelle hat keine Datensätze, sondern wollte nur, dass, um zu versuchen, da ich verstehe, dass die Linke all Join zeigt die Datensätze in der Tabelle auf der linken Seite, obwohl die rechte Tabelle keine Datensätze hat.

Ich habe Left Join von Inner Join geändert und die Abfrage wird ohne Fehler mit dem Ergebnis von Nullsätzen (wie erwartet) ausgeführt.

MySql Version ist 5.7.18

Artikel Tabelle:

enter image description here

Einige Test:

Beispiel einer Abfrage, die ohne Fehler Ok arbeiten:

"select `articles`.`id`, `articles`.`name`, `articles`.`description`,`articles`.`startPrice`,`articles`.`creationDate`," + 
"`bids`.`date`, `bids`.`price`,`bids`.`userId`" 
           + " FROM `articles` INNER JOIN `bids` ON `articles`.`id` = `bids`.`articleId` " 
           + " WHERE 1" 

Ich versuche auch passiert, meinen MySQL-Server und die gleiche Sache neu zu starten

ich mit

statement.executeQuery() 
+0

sind Sie sicher, Sie haben eine Spalte mit dem Namen ID in Artikeltabelle ?? – scaisEdge

+0

Ja, existiert. Wenn ich die Verknüpfung "Linke Verknüpfung durch innere Verknüpfung" ändere, funktioniert die Abfrage. – user2983041

+0

Was passiert, wenn Sie articles.id zu Ihren Spalten hinzufügen? Jede Differenz? –

Antwort

0

Ich weiß nicht, warum, aber es war korrigiert mit der Java-Statement-Klasse anstelle von PreparedStatement, um die Abfrage auszuführen.

+0

Wenn dies die Antwort auf Ihre eigene Frage ist, markieren Sie diese bitte, um anderen Benutzern zu zeigen, dass diese Frage beantwortet wurde. – SandPiper

+0

So wie es aussieht, beantwortet dies die Frage nicht wirklich, Ihre Frage sollte den ursprünglichen Code enthalten und diese Antwort sollte den Code enthalten, der das Problem behoben hat. –

0

Versuchen Sie, diese Java und JDBC bin mit:

"SELECT `articles`.`name`, `articles`.`description`,`articles`.`startPrice`,`articles`.`creationDate`," 
         + "`bids`.`date`, `bids`.`price`,`bids`.`userId`" 
         + " FROM `articles` LEFT JOIN `bids` ON `bids`.`articleId` = `articles`.`id`" 
         + " WHERE 1" 
+0

Ja, ich habe es getestet, indem ich die Bedingungen der Klausel On mit denselben Ergebnissen invertiert habe. – user2983041