各位高手,如何把这条sql语句写成view

zzzai 2006-06-03 11:14:48
select * from view1 f where f.INSTANCE_ID in
( select t.INSTANCE_ID from view2 t where t.USER_NAME='liuz' and t.STATE=4 )
and f.user_name<>'liuz' and f.STATE=1


这个sql语句是不是有别的写法,可以修改为view。
这是一个嵌套的sql ,如果写出view那么就要把他的user_name 取出来。
查询这个view的时候,user_name 作为查询条件输入进去。
...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyu1980 2006-06-03
  • 打赏
  • 举报
回复
create view viewname
as
select * from view1 f where f.INSTANCE_ID in
( select t.INSTANCE_ID from view2 t where t.USER_NAME='liuz' and t.STATE=4 )
and f.user_name<>'liuz' and f.STATE=1;
yuyu1980 2006-06-03
  • 打赏
  • 举报
回复
你想干吗?说清楚点
yqwd911 2006-06-03
  • 打赏
  • 举报
回复
用msn把,我没有QQ
zzzai 2006-06-03
  • 打赏
  • 举报
回复
谢谢:
这是有些感激
可以认识一下吗??
53025328
yqwd911 2006-06-03
  • 打赏
  • 举报
回复
上面写错了多了一个'and'

应该是
select * from viewname where
USER_NAME1='liuz'
and user_name<>'liuz'
yqwd911 2006-06-03
  • 打赏
  • 举报
回复
把你的句子改写一下就可以了
select f.*,t.user_name user_name1 from view1 f ,view2 t
where f.INSTANCE_ID =t.INSTANCE_ID
and t.STATE=4
and f.STATE=1
and t.USER_NAME='liuz'
and f.user_name<>'liuz'
逻辑是相同的而且可能比你的句子执行速度还要快

现在你在创建视图
Create view viewname
select f.*,t.user_name user_name1 from view1 f ,view2 t
where f.INSTANCE_ID =t.INSTANCE_ID
and t.STATE=4
and f.STATE=1



以后的查询你可以写
select * from viewname where
and USER_NAME1='liuz'
and user_name<>'liuz'

我们只是按照你的句子改写,如果你讲出你的业务逻辑也许有更好的解法
zzzai 2006-06-03
  • 打赏
  • 举报
回复
是这样,我需要写一个view,通过view查询,不过这个view中应该没有user_name,这个条件。view写好后,user_name作为一个查询条件查询view。
比如select * from view where user_name='liuz'
不过这个view现在是使用了2个user_name,我不会写这个view。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧