列m(n):表示m引用n为外键表1:t1有两列:id name
表2:t2:column1(id) ,column2(id),column3
表3:t3:column4,column5,column6表3有5行数据,依次为:
sort1 0 a
sort1 1 b
sort1 2 c
sort2 0 A
sort2 1 B其中column3是当column4=sort1的时候引用column5做的外键。问题:做一个视图,显示出来column1,column1对应的name,column2,column对应当name,column3,column3对应的column6的值
当确保column3的范围在column5的值之内的时候, 应该视图的行数和表2的行数一样的,但是我的语句却不行:
我的语句是:
create or replace view myview
as
select t2.*,temp.name,temp2.name,t3.column6
from t1 temp ,t1 temp2,t2,t3
where t2.column1 = temp.id
and t2.column2 = temp2.id
and t2.column3 = t3.column5
and t3.column4 = ‘sort1’我的肯定是错的,所以请高手看看这个怎么做??是用join??请不要挑剔上面语句的毛病,直接写写你的想法,谢谢。
表2:t2:column1(id) ,column2(id),column3
表3:t3:column4,column5,column6表3有5行数据,依次为:
sort1 0 a
sort1 1 b
sort1 2 c
sort2 0 A
sort2 1 B其中column3是当column4=sort1的时候引用column5做的外键。问题:做一个视图,显示出来column1,column1对应的name,column2,column对应当name,column3,column3对应的column6的值
当确保column3的范围在column5的值之内的时候, 应该视图的行数和表2的行数一样的,但是我的语句却不行:
我的语句是:
create or replace view myview
as
select t2.*,temp.name,temp2.name,t3.column6
from t1 temp ,t1 temp2,t2,t3
where t2.column1 = temp.id
and t2.column2 = temp2.id
and t2.column3 = t3.column5
and t3.column4 = ‘sort1’我的肯定是错的,所以请高手看看这个怎么做??是用join??请不要挑剔上面语句的毛病,直接写写你的想法,谢谢。
from t1,t2,t3
where t1.id=t2.column1
and t1.id=t2.column2
and t2.column3= t3.column6
and t2.column3 <=(t3.column5)
表2:t2:column1(id) ,column2(id),column3 你的t2表中column1,column2怎么都和t1表的id外建关系,如果这样的话 column1=column2啊!
你的结果集和t2的行数未必一致因为:t2,t3关联的是t2.column3 = t3.column5 ,但是还要求t3.column4='sort',这个条件会剔除部分记录的
你把t1当成2张表来查的,temp temp2
from t1 temp ,t1 temp2,t2,t3
where t2.column1 = temp.id
and t2.column2 = temp2.id