【发布时间】:2015-07-12 14:13:20
【问题描述】:
有人可以帮帮我吗?我不知道我认为正确的查询有什么问题..
物品表
贷款表
当铺表
Loan_assignment 表
这是我获取唯一 ID 和 MAX(日期)的查询
SELECT distinct p.pawner_id, c.item_name, c.description, l.net_proceeds,
max(DATE_FORMAT(a.date_loan_granted, '%d-%b-%Y')) as date
from pawner p, loan l, collateral c, loan_assignment a, pawnshop b
WHERE b.pawnshop_id = a.pawnshop_id AND p.pawner_id = a.pawner_id
AND l.loan_id = a.loan_id AND a.item_id = c.item_id
AND b.pawnshop_id = 1 group by p.pawner_id;
上述^查询的结果是这样的:
我喜欢发生的结果如下
【问题讨论】:
-
首先修复您的查询,使其使用正确的显式
join语法。 -
选择 p.pawner_id, c.item_id, c.description, l.net_proceeds, date_format(max(a.date_loan_granted), '%d-%b-%Y') as date_format from loan_assignment a在 p.pawner_id = a.pawner_id 上左加入当铺 p按loan_id分组)按p.pawner_id分组;
-
@GordonLinoff 的净额输出仍然是错误的,不知道为什么?..
-
您的查询仍然存在问题:(1) 您在
select中有列不在group by中。 (2) 您正在对字符串进行最大值操作,这与对日期进行最大值操作不同。进行查询以获得最大时间,然后将其重新加入。这可能是 Brian 的答案。
标签: mysql sql database-administration