|
主题: 多个表中读数据select怎么写?
|
gation
职务:普通成员
等级:2
金币:1.0
发贴:251
|
#12003/12/5 11:12:45
sql="select ST_RIVER_R.年月日时分,水位,站名,站址,ST_RNFL_R.年月日时分,时段降水量,日降水量,ST_RSVR_R.年月日时分,库内水位 from ST_RIVER_R,ST_STINFO_B,ST_RNFL_R,ST_RSVR_R where ST_RIVER_R.报汛站码=ST_STINFO_B.报汛站码=ST_RNFL_R.报汛站码=ST_RSVR_R.报汛站码" 上面写法对吗? ST_RIVER_R,ST_STINFO_B,ST_RNFL_R,ST_RSVR_R这4个表中报汛站码一项相同
|
沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
|
#22003/12/5 11:18:47
select * from st_river_r,st_stinfo_b,st_rnfl_r,st_rsvr_r where st_river_r.报汛站码=st_stinfo_b.报汛站码 and st_rnfl_r.报汛站码=st_rsvr_r.报讯站码 and st_stinfo_b.报讯站码=st_rnfl_r.报讯站码
一下子连四个表,你的SERVER早晚被你拖死,可以改变一下用子查询吧,效率可能会稍微的那么高一点点,另外连表的时候最好不要超过两个表相连,你得为服务器考虑一下呀.
难人一个……
|
gation
职务:普通成员
等级:2
金币:1.0
发贴:251
|
#32003/12/5 11:48:40
谢谢arhui,能否给个子查询的例子 是不是应该这样:set rs=server.CreateObject ("ADODB.Recordset")sql="select 年月日时分,水位,站名,站址 from ST_RIVER_R,ST_STINFO_B where ST_RIVER_R.报汛站码=ST_STINFO_B.报汛站码" rs.open sql,conn set rs1=server.CreateObject ("ADODB.Recordset")sql="select 年月日时分,雨量,站名,站址 from ST_RNFL_R,ST_STINFO_B where ST_RNFL_R.报汛站码=ST_STINFO_B.报汛站码" rs1.open sql,conn
|
沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
|
#42003/12/5 14:30:46
你非得四个表一起查吗?
你先不要急着把SELECT语句嵌到网页里面,先到SQL的查询分析器里检查一下语法是否能通得过,再把SQL语句放到网页中
所谓子查询就是说分步查询了,在一条select语句中执行两条或两条以上的查询语句,最后查询的结果作为前面的条件,例如要查询一个数据表(TABLE2)里用户为123的用户发表的信息可以象下面这样: SELECT * FROM TABLE2 WHERE USERNAME=(SELECT USERNAME FROM USERINFO WHERE ID='123') 这条语句第一步查询的是括号里面的,先把ID号为123的用户名查询出来,作为括号外面查询语句的条件,子查询比联表查询的效率要高,但是一般写的时候都喜欢联表,因为写SELECT语句的时候用联表的方法比较容易理清头绪.
难人一个……
|