第一种情况:通过一个条件去查询专业表中的信息,想法就是通过关系表找到所有的专业ID,然后根据ID查询专业信息,当然这里的ID可能有0 、1、 或多个。图简单用in写就可以,如果你想提高效率的话,那就用exists。
in的方式:select * from magor where mid in (select distinct mid from m--i where fid=@fid) -- 其中@fid为条件参数
exists的方式: select T.* from magor T where exists (select * from m--i where fid=@fid and mid=T.mid)
当然程序里面可能是以条件表的其他字段,那么相信你可以相应找到@fid,思想都是一样的。
第二种情况:通过多个条件去查询专业表中的信息,or的情况很简单和上面一样,直接在where后加or fid=@fid2就行了。And话这种情况就相对复杂点了,如果只有两个条件可以直接用嵌套的条件去查询。但是我想实际情况条件多少个是无法预知的,那么无法用一条SQL搞定了,可以先视图,也可以用游标的方式去处理,相对复杂点!
自己看着办吧!问题确实没表达清楚!
可以这么做,建立一张视图,将zhengce,fagui,yanlun三张表联合起来,zid,fid,yid合并为gid。然后通过sql语句查询。select * from myview where gid in(select gid from guanxi where gbj='a').
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)