通过使用max函数使用内部联接和组有一些问题。 我的细节: 表库存
let carts = [];
for (let i = 0; i < len; i++) {
let cart = {};
cart.item_name = items[i].get("item_name");
cart.quantity = items[i].get("quantity");
cart.amount = items[i].get("amount");
cart.total = cart.amount * cart.quantity;
cart.subtotal = cart.subtotal + cart.total;
carts.push(cart);
}
console.log(carts);
表wp_users(wordpress)
site_ID tank_number volume times-tramp ID
1 1 5000 06/08/2017 15:00 1
1 1 4900 06/08/2017 15:01 2
1 2 6000 06/08/2017 15:05 3
1 3 4000 06/08/2017 15:05 4
2 1 3000 06/08/2017 15:33 5
2 2 2000 06/08/2017 15:34 6
1 1 4800 06/08/2017 15:36 7
1 2 5800 06/08/2017 16:00 8
现在,我在wordpress中使用wpdatatable插件,所以我想使用内部连接和tank_number组并使用times-strap数据更新
结果应该是:
当用户&#34; aaa&#34;登录然后ID将是1
希望展示的结果。
ID Name
1 aaa
2 bbbb
但是 我得到了这个结果:
site_ID tank_number volume times-tramp
1 1 4800 06/08/2017 15:36
1 2 5800 06/08/2017 16:00
1 3 4000 06/08/2017 15:05
所以每个人都可以提醒我,所以我显示我的代码显示错误,因为我无法通过正确的语法sql加入2表。
此代码可以在没有内部联接的情况下工作
site_ID tank_number volume times-tramp
1 1 5000 06/08/2017 15:00
1 2 6000 06/08/2017 15:05
1 3 4000 06/08/2017 15:05
现在我尝试使用内连接但现在不能正常工作。
select site_id, tank_product, volume, timestramp from inventory as t1
inner join (
select tank_product as tank, max(timestramp) as time from inventory
where site_id=1 group by tank_product) as t2
on t1.tank_product = t2.tank and t1.timestramp = t2.time and t1.site_id=1
可以建议我通过max函数按组使用内连接的正确方法。
答案 0 :(得分:0)
因此,您提供的架构和您提供的查询不会排队(命名就到处都是)。如果你提供一个sql小提示来帮助呈现你的问题(至少在未来),这将是非常有帮助的。
无论如何,我认为你很接近:
select t2.site_id, t2.tank_product, t1.volume, t2.time
from (
select site_id, tank_product, max(timestramp) as time
from inventory
group by site_id,tank_product) t2
inner join inventory t1
on t2.site_id=t1.site_id and t1.tank_product=t2.tank_product and t2.time=t1.timestramp
inner join wp_users u
on u.id=t2.site_id
where u.id=1
order by t2.site_id,t2.tank_product asc
(假设您将wp_users.id传递给查询;我已经用u.id = 1对其进行了硬编码。)
答案 1 :(得分:0)
尝试运行:
...
</ div>
<div class="ex">
...