日期:2014-05-17  浏览次数:20533 次

多个join使用的时候怎么设置条件WHERE
select a.class, 
 a.a+'*'+ba.num as A类, 
 a.b+'*'+bb.num as B类, 
 a.c+'*'+bc.num as C类 
 from ta a 
 join tb ba on ba.classin ='A类' 
 join tb bb on bb.classin ='B类' 
 join tb bc on bc.classin ='C类'
数据库中有TA表和TB表 当使用上述查询语句后怎么在后面添加WHERE语句
例如我TB表中有一列是BIT为的 如果我只选中A类那他只查询
select a.class, 
 a.a+'*'+ba.num as A类, 
 from ta a 
 join tb ba on ba.classin ='A类' 
如果我选中了AB两类那它查询
select a.class, 
 a.a+'*'+ba.num as A类, 
 a.b+'*'+bb.num as B类, 
 from ta a 
 join tb ba on ba.classin ='A类' 
 join tb bb on bb.classin ='B类' 
如果选中了ABC三个那他查询
select a.class, 
 a.a+'*'+ba.num as A类, 
 a.b+'*'+bb.num as B类, 
 a.c+'*'+bc.num as C类 
 from ta a 
 join tb ba on ba.classin ='A类' 
 join tb bb on bb.classin ='B类' 
 join tb bc on bc.classin ='C类'
这样的 请问怎么用WHERE加在后面呢?



------解决方案--------------------
SQL code
select a.class, 
a.a+'*a

------解决方案--------------------
建议在 on 后面的条件要接两个表的关联信息。
------解决方案--------------------
如果你的where条件不固定,你可以把语句改成动态的,然后再进行语句组合,最后exec执行。

------解决方案--------------------
那样不好 最好用过程
------解决方案--------------------
where关联语句写在最后面

不过一般建议使用动态语句
------解决方案--------------------
1085778239
------解决方案--------------------
那样不好 最好用过程