我要进行多表查询,而languageid两个表中都该字段,网上的解决方法是在WHERE 后的条件字段中加上表名
where tablea.classid=xxx and tableb.classid=xxx
但是因为我的条件无论对tablea,tableb都是一样的,非要这么麻烦的写吗
where tablea.classid=xxx and tableb.classid=xxx
但是因为我的条件无论对tablea,tableb都是一样的,非要这么麻烦的写吗
$s=count($t);
$sql="";
for ($i=0;$i<=$s;$i++) {
$sql.="SELECT id,form_name,form_number,time,zt FROM $t[$i] WHERE zt=1 union all ";
}
$sql=substr("$sql",0,-10);
$ttt=mysql_query($sql);这事一个朋友多表查询的例子,但是用的是union联合,总觉得这样做SQL太长,有简洁的方法吗
谢谢
一般遇到这种情况都用表的别名.如:
select t1.id, t2.id from table1 as t1, table2 as t2 where t1.id = t2.id
现在的问题是要分别给where中的字段加上表名,所以这回让where子句变得很大,同时因为对tablea和tableb所限制查询的where条件以墨一样,我觉得有没有什么好方法能够精简语句,
而不妖用
where tablea.classid=xxx and tableb.classid=xxx
谢谢
可以将每个表建一个短小的别名就可以不会让where字句很大了