"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:找不到列'`articles` .id`'。
bids
表没有记录,但只是想尝试一下,因为我知道左连接显示左边表中的所有记录,尽管右表没有记录。
我已经通过Inner Join更改了Left Join,并且查询运行时没有错误 结果为零记录(如预期的那样)。
MySql版本是5.7.18
文章表:
一些测试:
无错误的查询示例:
"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"
我也尝试重新启动我的MySql服务器,同样的事情发生了
我正在使用java和JDBC
statement.executeQuery()
答案 0 :(得分:0)
试试这个:
"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"
答案 1 :(得分:0)
我不知道为什么,但是使用Java Statement类而不是PreparedStatement来修复它来执行查询。