Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
10天前关闭。
我有两个表“ users”和“ paymenthistory”,我想获取具有最高“ bookingid”的特定“ user”的记录,
但是它只显示一条记录给我,应该显示2条记录,“ max”功能有问题,这是我的表
表“付款”
表“用户”
这是我的查询
显示一条记录,但我想获得两列相同的记录“ lastbookingid”(相同),我在哪里错?
使用内部SQL语句避免由于使用聚合函数(max)导致隐式添加“分组依据”,从而导致结果仅显示一行。
这是经过测试的输出:
![php - Max函数未显示多个记录Mysql-LMLPHP php - Max函数未显示多个记录Mysql-LMLPHP]()
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
10天前关闭。
我有两个表“ users”和“ paymenthistory”,我想获取具有最高“ bookingid”的特定“ user”的记录,
但是它只显示一条记录给我,应该显示2条记录,“ max”功能有问题,这是我的表
表“付款”
id bookingid userid
1 142 3
2 146 2
3 148 3
4 154 5
表“用户”
id name
1 abc
2 zyd
3 xyz
4 nwd
这是我的查询
$this->db->select('p.bookingId,MAX(p.bookingId) as lastBookingId,p.userid,u.name');
$this->db->from('payment p');
$this->db->join('users u','p.userid=u.id');
$this->db->where('p.user',"3");
显示一条记录,但我想获得两列相同的记录“ lastbookingid”(相同),我在哪里错?
最佳答案
我从你的评论中得到你的意思。
这是更新后的SQL语句,它将产生您想要的结果
SELECT p.bookingId,
(SELECT MAX(x.bookingId) FROM payment x WHERE x.userid = p.userid)
AS lastBookingId,
p.userid, u.name
FROM payment p
LEFT JOIN users u ON p.userid = u.id
WHERE p.userid = 3;
使用内部SQL语句避免由于使用聚合函数(max)导致隐式添加“分组依据”,从而导致结果仅显示一行。
这是经过测试的输出:
关于php - Max函数未显示多个记录Mysql ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59876460/