在左连接中找不到列

时间:2017-06-30 19:11:03

标签: java mysql sql join jdbc

    "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

文章表:

enter image description here

一些测试:

无错误的查询示例:

"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()

2 个答案:

答案 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来修复它来执行查询。