mysql多条件关联查询

工作中遇到一些mysql问题,有的需要多条件多表查询等,现在整理出来。
问题(一)如下:

查询出今天办公室人员的订餐人员
qsyz_app_user用户表
userid role


qsyz_shop_order订单表
user_id status date


role 为“办公室”
status 为“支付成功”
日期要求为今天

实现语句

select * from qsyz_app_user a,qsyz_shop_order b where a.userid=b.user_id and b.order_status='支付成功' and b.create_date='2017-12-25 16:05:05';

按日期模糊查询出结果
select a.nickname  from qsyz_app_user a,qsyz_shop_order b
where a.userid=b.user_id 
and a.role='办公室' 
and b.order_status='支付成功' 
and b.create_date like '%2017-12-25%';

mysql like的写法

like concat('%',#{param},'%')  或者 like '%${param}%' ,推荐使用前者,可以避免sql注入。

这里写图片描述

问题(二)如下:

从版本表中按照手机类型,找出版本号最大的版本


版本表
mysql> select * from qsyz_app_version;
+-----------+--------------+-------------+--------------+-------------+--------------+----------------------------------------------------+------------+
| id        | version_name | version_num | version_size | create_time | version_text | down_url                                           | phone_type |
+-----------+--------------+-------------+--------------+-------------+--------------+----------------------------------------------------+------------+
| 440289813 | 1.1.2        |    20171205 |            0 | 2017-12-05  | 56           | http://192.168.1.101:8080/images/1.JPEG            | android    |
| 440378169 | 1.1.2        |    20171109 |            0 | 2017-12-05  | 565          | http://192.168.1.101:8080/images/2.JPEG            | android    |
| 749696543 | 1.1.0        |           1 |            0 | 2017-10-23  | ghkfadjghkl  | http://192.168.2.112:8080/images/app-debug.apk     | android    |
| 750259190 | 21           |          23 |            0 | 2017-10-23  | 家居空间     | http://192.168.2.112:8080/images/ConstantUtil.java | android    |
+-----------+--------------+-------------+--------------+-------------+--------------+----------------------------------------------------+------------+
4 rows in set

实现语句

select * from qsyz_app_version where version_num=(select max(version_num)from qsyz_app_version WHERE phone_type='android
');

这里写图片描述

问题(三)如下:

从订单详情表中查询出用户的订单详情,按照倒叙排列

订单详情表:

这里写图片描述

实现语句

扫描二维码关注公众号,回复: 1372660 查看本文章
SELECT * FROM qsyz_wallet_detail WHERE userId=#{userId} order by tradeDate DESC

这里写图片描述

问题(四)如下:

情景:返回店铺的评论列表里,要求实现分页。
因为店铺评论列表是个动态的,每时每刻都有可能有人在评论,所以如果安装页数返回的话有可能会使数据重复或数据漏掉。
方法:传入一个评论id,下次查询的时候,查询这个id后面的十条数据(id要有序,不然很麻烦)

例子
这里写图片描述

实现语句

mysql> select id,name from user where id>'1' order by id asc limit 2;

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36306340/article/details/78903051