表一
id area
-------------
1 广州
2 上海
3 北京表二
id name
-----------------
1 天山
2 环四路
3 中山六路
表三
id area name pickno pdate
-----------------------------------------
1 1 3 552123 2004-1-3
2 1 2 525222 2004-1-5
3 3 3 868555 2004-1-8
4 2 1 855312 2004-1-1
5 2 2 536333 2004-1-13查询:
查找表三中所有数据,条件是 pdate 大小 2004-1-2 而小于 2004-1-9 并且 area='广州' name='中山六路' 这个查询语句怎样写?
查询结果应该是:id area name pickno pdate
-----------------------------------------
1 广州 中山六路 552123 2004-1-3
id area
-------------
1 广州
2 上海
3 北京表二
id name
-----------------
1 天山
2 环四路
3 中山六路
表三
id area name pickno pdate
-----------------------------------------
1 1 3 552123 2004-1-3
2 1 2 525222 2004-1-5
3 3 3 868555 2004-1-8
4 2 1 855312 2004-1-1
5 2 2 536333 2004-1-13查询:
查找表三中所有数据,条件是 pdate 大小 2004-1-2 而小于 2004-1-9 并且 area='广州' name='中山六路' 这个查询语句怎样写?
查询结果应该是:id area name pickno pdate
-----------------------------------------
1 广州 中山六路 552123 2004-1-3
left join 表二 as b on b.name =a.name
left join 表一 as c on c.area=a.area
where a.pdate>'2004-1-2' and a.pdate<'2004-1-9 '
and b.area='广州' and c.name='中山六路'
left join 表二 as b on b.id =a.name
left join 表一 as c on c.id=a.area
where a.pdate>'2004-1-2' and a.pdate<'2004-1-9 '
and b.area='广州' and c.name='中山六路'
select c.id,
a.area,
b.name,
c.picno,
c.pdate
from 表三 c join 表一 a on a.id=c.area
join 表二 b on b.id=c.name
where a.area='广州'
and b.name='中山六路'
and c.pdate between '2004-1-2' and '2004-1-9'
left join 表二 as b on b.id =a.name
left join 表一 as c on c.id=a.area
where a.pdate>'2004-1-2' and a.pdate<'2004-1-9 '
and c.area='广州' and b.name='中山六路'
where a.name=b.id and a.area=c.id
and between a.to_date() and a.to_date()