mysql查询实例

 车辆管理所有如下表:车辆所属关系表Ownership(车辆号,车主身份证号),车主身份信息表Ownerinfo(车主身份证号,姓名,年龄),

限行表Restriction(尾号,限行日期)。


1 写出SQL查询,名下有多部车辆的车主列表(车主身份证号,名下车辆数量)

Group by是指对所得的数据按某类别进行分组,即划分为几个小区域,之后用having可以对sql中的函数进行操作。

select Ownerid,count(*) from Ownershipgroup by Ownerid HAVING count(*)>1;

结果为:

+---------+----------+

| Ownerid | count(*) |

+---------+----------+

| 111    |        2 |

| 112    |        2 |

| 113    |        2 |

| 114    |        2 |

+---------+----------+

4 rows in set

 

2 写出SQL查询,40岁以下车主名下的车辆牌照列表(车主姓名,车辆牌照)

select Name,o1.Ownerid,Platenumber fromOwnerinfo o1,Ownership o2 where o1.Ownerid=o2.Ownerid  and Age<40;

 

结果如下:

| Name | Ownerid | Platenumber |

+------+---------+-------------+

| 张飞 | 113     | 京3         |

| 赵云 | 114     | 京4         |

| 马超 | 115     | 京5         |

| 张飞 | 113     | 京9         |

| 赵云 | 114     | 京10        |

+------+---------+-------------+

5 rows in set

 

3 写SQL查询,周三没有车可以开的车主姓名列表。

substring(Platenumber,-1)为截取Platenumber的最后一位。

 

select Platenumber,o1.Ownerid,Namefrom  Ownership o1,Ownerinfo o2 whereo1.Ownerid=o2.Ownerid and substring(Platenumber,-1)=(select Lastdigit fromRestriction where Restriction='周三') group by Ownerid;

 

结果如下:

+-------------+---------+------+

| Platenumber | Ownerid | Name |

+-------------+---------+------+

| 京2         | 111     | 刘备 |

+-------------+---------+------+

1 row in set

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值