求一条sql语句,完成如下功能,功能不难,难的是一条sql语句

问题遇到的现象和发生背景

img

如图所示,是数据库表

如何通过用户名的模糊查询,获取用户的点餐列表,结果需要按照用户来分页,一个用户一页
每一页包含菜品名,单价和菜品总价

求sql语句,一条sql语句,一条~

MySQL8:

    SELECT usr.id AS userid, usr.username, fd.foodname, fd.price, sum( fd.price ) OVER( PARTITION BY usr.id ) zj
      FROM ( SELECT * FROM user WHERE username LIKE '%测试%' ) usr JOIN order ord ON usr.id = ord.userid
                                                                  JOIN food fd ON ord.foodid = fd.id
     ORDER BY usr.id;

既然你要分页查询,那还纠结一条干什么
你一条语句一下出来900行数据,你也没地方显示,还是都给隐藏了
那不如先加载出一个用户的数据,等点下一页的时候加载下一个用户的数据
这样又简单又可行
至于查询本身不难,无非就是一堆left join,这2个表和18个表没本质上的区别