本文接着介绍我在编写mff算法分析过滤工具时用到的一些sql查询语句。
当我们查询的表是两个表拼接(内连接)在一起的时候,我们可以采用的语句如下:
select table_name_1.column_name_1,table_name_2.column_name_2 from table_name_1 inner join table_name_2 on table_name_1.column_name_3=table_name_2.column_name_4
这里的inner join 和on是搭配使用的,on后面是我们链接两个表的内部条件,这里给大家举一个简单的例子看一下,如下:
select data_image_20180608.id,data_object_info_20180608.confidence_level from data_image_20180608 inner join data_object_info_20180608 on data_image_20180608.id=data_object_info_20180608.resource_guid
这时,如果我们需要把查询出的数据进行排序显示时,我们可以再加上下面一段话:
select table_name_1.column_name_1,table_name_2.column_name_2 from table_name_1 inner join table_name_2 on table_name_1.column_name_3=table_name_2.column_name_4 group by table_name.column_name
这样处理之后,查询出的数据就会按照我们设定的table_name.column_name的条件进行排序。
最后我们再综合一下上一篇博客的内容来一个示例:
select data_image.id,data_image.timestamp,data_image.local_full_path,max( data_object_info.confidence_level),data_object_info.pointlt_x, data_object_info.pointlt_y,data_object_info.pointrb_x,data_object_info.pointrb_y,data_image.label from data_image inner join data_object_info on data_image.id=data_object_info.resource_guid where (data_image.event_type=7 and data_image.upload_status =1) and (data_image.timestamp > '2018-06-08 20:30:00' or data_image.timestamp < '2018-06-08 7:30:00') group by data_object_info.resource_guid
这里需要大家注意,max()函数是和group by()一起配套使用的,如果单独使用max()的话就只输出一个查询数据,博主之前因为不熟悉max()花了很长时间去尝试都是一条信息输出,希望大家使用的时候注意。