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

问题描述

关于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语句。。。。

解决方案

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是否为空过滤

时间: 2024-08-03 11:12:13

关于oracle关联表查询的sql语句的相关文章

一个多表查询的SQL语句_数据库其它

有 表1:如下内容 表2:   如下内容      id     info id value      1 a 1 10      2 b 2 30      3 c      4 d      想得到      id value      1 10 //表2中存在      2 20 //表2中存在      3 0 //表2中不存在      4 0 //表2中不存在      是否可以使用一条sql语句来解决,而不必先从表1中得到id,再在表2中查找是否有该条记录,如果有就直接读取出来,没

sql oracle数据库关联表查询

问题描述 sql oracle数据库关联表查询 现在有一个教师表(教师号 教师名) 课程号(教师号 课程号 课程名) 教室表(教师号 课程号 教室号 教室名) 想显示所有教室的教师名和课程名. 就是想问这种关联的查询语句 排除表中一些矛盾的存在哈 谢谢 解决方案 select b.教师名,c.课程名 from 教室表 a LEFT JOIN 教师表 b ON a.教师号=b.教师号 LEFT JOIN 课程表 c ON 教师表 b ON a.教师号=c.教师号 这个才是对的,刚刚没看清楚写错了.

Mybatid关联表查询

Mybatid关联表查询 一.一对一关联  1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. 1 CREATE TABLE teacher( 2 t_id INT PRIMARY KEY AUTO_INCREMENT, 3 t_name VARCHAR(20) 4 ); 5 CREATE TABLE class( 6 c_id INT PRIMARY KEY

求oracle数据库的分页显示sql语句

问题描述 求oracle数据库的分页显示sql语句 求大神告知oracle数据库的分页显示sql语句,用rownum查不到 解决方案 http://www.cnblogs.com/xiaopang2010/archive/2012/07/23/2604880.htmlhttp://www.2cto.com/database/201304/206296.html 解决方案二: String querySql = ""; querySql += "select x.* from

MyBatis学习教程(五)-实现关联表查询方法详解_java

一.一对一关联  1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR() ); CREATE TABLE class( c_id INT PRIMARY KEY AUTO_INCREMENT, c_name VAR

两表连接的SQL语句

两表连接的SQL语句:这两种写法哪种好?现在提倡用哪一种呢? 例如:一个二表连接的SQL,有两种写法: (1)select A.c1,A.c2,B.c1,B.c2 from table1 A,table2 B where A.id=B.id (2)select A.c1,A.c2,B.c1,B.c2 from table1 A join table2 B on A.id=B.id 哪种写法好呢?现在提倡用哪一种? 你喜欢用哪一种? 我习惯用(1) ---这两个哪个好? 其中11楼的回答最为深入.

discuz-Discuz 3.2 查询的sql语句怎么写?

问题描述 Discuz 3.2 查询的sql语句怎么写? 我在数据表里面加了一个sid,现在要以sid为条件去查询数据,这样写是错误的,,求正确写法!! 解决方案 string sql;sql="select 字段名xx,xx,xx from 数据表名"sql+="where xxx(主键名)="+articleid.ToString();

把多表联查的sql语句转换成linq语句

问题描述 把多表联查的sql语句转换成linq语句 SELECT * FROM [group_product] where proid in(select proid from [group_browsehistory] where memid in(select memid from [group_browsehistory] where proid=12)) 在线等,这个sql语句怎么转换成linq??? 解决方案 from x in group_product where group_br

一个查询的SQL语句请教,希望能够用一条SQL语句得到结果_数据库其它

  各位老大:  我有一个查询的SQL语句请教,希望能够用一条SQL语句得到结果,问题如下:      表X:      A           B           C       D      ------------------      北京   广州   1000     10      北京   深圳   1200     20      北京   上海   500       30      北京   天津   300       40      北京   河南   800