MySQL Workbench查询返回1行,但Jdbc中的相同查询返回0

时间:2018-09-21 01:20:44

标签: mysql sql jdbc mysql-workbench

我编写了一个查询,该查询在MySQL Workbench中运行时返回1行:

SELECT lot_num, block_num, base_price, SUM(price) AS options_price FROM lots AS l 
INNER JOIN models AS m ON l.model_id = m.id 
INNER JOIN lot_options AS lo ON l.id = lo.lot_id 
INNER JOIN options AS o ON lo.option_id = o.id 
GROUP BY l.id

当我尝试在Jdbc中运行该程序时,得到0条结果。这是我格式化Jdbc字符串的方式:

从手数中选择lot_num,block_num,base_price,SUM(price)AS options_price l内部联接模型AS m ON l.model_id = m.id内部联接lot_options AS lo ON l.id = lo.lot_id内部联接options AS o ON lo.option_id = o.id GROUP BY l.id;

这不会为我提供任何错误或其他信息。只是一个空结果集。

我无法弄清楚此查询出了什么问题!请让我精通SQL!

1 个答案:

答案 0 :(得分:0)

我知道了。我对JOIN语句不了解。多对多表需要LEFT OUTER连接。我不知道为什么原始查询可以在Workbench中工作,而不能在Jdbc连接中工作。两者都可以!

SELECT lot_num, block_num, models.base_price, SUM(o.price) FROM lots 
INNER JOIN models ON models.id = lots.model_id
LEFT OUTER JOIN lot_options AS lo ON lots.id = lo.lot_id 
LEFT OUTER JOIN options AS o ON lo.option_id = o.id
GROUP BY lots.id
相关问题