liermao12 2014-06-13 06:10 采纳率: 0%
浏览 1973

关于oracle关联表查询的sql语句

现在两张表,分别是表A,表B.

表A:

ID CONTENT STARTDATE ENDDATE
1 测试内容1 2014/6/1 2014/6/15
2 测试内容2 2014/5/25 2014/6/30
3 测试内容3 2014/6/8 2014/7/1
4 测试内容4 2014/6/10 2014/6/30

表B:
ID A_ID CONTENT MDATE
1 2 测试1 2014/6/5
2 2 测试3 2014/5/3
3 4 测试2 2014/6/7

表A的ID和表B的A_ID是主外键关系,现在的目的是:
查询表A,如果表A所对应的B表中,MDATE在表A的STARTDATE 和 ENDDATE 之间,则表A的该记录不显示。

最后查询结果为:
 ID CONTENT STARTDATE ENDDATE
1 测试内容1 2014/6/1 2014/6/15
3 测试内容3 2014/6/8 2014/7/1
4 测试内容4 2014/6/10 2014/6/30

求高手帮写sql语句。。。。

  • 写回答

1条回答 默认 最新

  • 缘与我无缘 2014-06-13 09:56
    关注

    select id, content, startdate, enddate
    from (select A.*, B.Id as bid
    from A
    left join B on A.id = B.a_Id
    and to_char(B.Mdate, 'yyyy/mm/dd') >= to_char(A.Startdate, 'yyyy/mm/dd')
    and to_char(B.Mdate, 'yyyy/mm/dd') <= to_char(A.Enddate, 'yyyy/mm/dd')) t
    where t.bid is null
    order by id

    先查询在mdate在范围之内的,然后通过验证bid是否为空过滤

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作