两表关联,取B表满足条件的第一条数据
来源:互联网 发布:js时间格式化插件 编辑:程序博客网 时间:2024/06/06 09:37
例如有两个表goods和prices,商品表中的一条商品信息会对应价格表中的多条价格信息,现在要根据商品表查询其商品对应的可用最新的价格,即要满足价格的生效日期必须在商品上市之前,如果有多个价格,就选取最后生效的那个价格。
goods:商品表
序号商品名称上市日期1iphone62015-10-012iphone62016-08-013iphone62017-09-01prices:价格表
序号商品名称单价生效日期6iphone665002015-09-157iphone660002016-06-158iphone658002017-08-15希望得到的结果是:
货物序号商品名称上市日期单价单价生效日期1iphone62015-10-0165002015-09-152iphone62016-08-0160002016-06-153iphone62017-09-0158002017-08-15查询sql如下:
select A.*,B.price,B.effective_date from goods A left join prices B
on A.goods_name = B.goods_name and A.launch_date > B.effective_date
and B.effective_date = (select max(effective_date) from prices where A.goods_name = goods_name and A.launch_date > effective_date)
order by A.id
语句中用来筛选满足B表中满足条件的第一条这段是语句难点,位于上述第三行。
阅读全文
1 0
- 两表关联,取B表满足条件的第一条数据
- sql 一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。
- 只取数据库中出现的满足条件的第一条记录
- 两表关联进行更新--满足A条件一种更新,不满足A条件是另外一种更新
- SQL Server 随机取一条满足条件的数据
- 抓取表中满足条件的数据及图片
- SQL SERVER 取出 一张表中的每个分组中 的第一条数据 ,第一条数据是按照某种排序规则进行排序取的第一条
- 取排序后的第一条数据
- 取每一列的第一条数据
- oracle触发器 判断插入的记录是否满足条件,如果满足,则在b表中插入相应记录
- 取满足所有条件的记录
- left join 关联相同两张表,并将关联表的分别两条数据,整体合并为一条
- 使用Sqlite Select返回满足条件的第一条与最后一条记录
- PHP查询数据库中满足条件的记录条数(两种实现方法)
- oracle中按A列分组,B列排序,取B中第一条数据的查询
- SQL 两表关联 查询出A表中有但是B表中没有的数据
- 提取满足条件的前10条
- 输出满足条件的第二条语句
- leetcode 005 Longest Palindromic Substring
- Web Service (006---使用eclipse端口拦截器[TCP/IP Monitor]监视WebService请求)
- 开发流媒体服务器
- MySQL中游标的使用
- QT Layout中增删widget与切换界面
- 两表关联,取B表满足条件的第一条数据
- 周计划 补完工程 第六周 python基础第一周
- C语言(求1-3+5-7+9-11...+101的结果)
- HDU 6158 圆的反演
- 133. Clone Graph
- 数据库索引原理
- java基本思想(二)
- 八大基本排序算法
- usb设计中的管道pipe描述