数据库多表查询 spClass 这语句怎么写

#1 逸-萧杨

比如说,我要在表history里面查东西,先在model建个文件,关联history
  $sql="SELECT * FROM `history` order by date_com desc LIMIT 0 , 10";
  $histable = spClass("history");
  $this->results = $histable->findsql($sql);
现在我想在history 和score 表里面查东西,sql语句我已经写完了,
$sql2="select * from history,score where history.task_id = score.task_id order by date_com desc limit 0,10";
$histable = spClass("history");这句话要改成什么啊??且要在model建什么数据库关联文件
求解释???????

该贴已经同步到 逸-萧杨的微博

2011-09-27 09:36:33

#2 依然candy

楼主 如果你只是要查询的话 那么没必要建立表关联。一般我们建立表关联是为了在向数据库中插入一条记录时 要放到两个表 甚至 多个表里。在你用到的那个表 比如你的history表 在 m类文件下建立一个假如名称为lib_history.php类 在写sql语句是你可以用表关联 如left join 在你的控制器中 引入 这个类 比如 $lib_history = spClass("lib_history");  然后findSql你的sql语句就好了!!  我也是才学的~ 也有很多不明白--------

2011-09-27 09:50:22

#3 jake

二楼说的对,findSql并不限定于哪个model,findSql是可以SQL语句的函数。

2011-09-27 12:12:35

#4 逸-萧杨

回复 2 依然candy
还是有点不明白,m类文件下?? left join ??不懂。。
sql2="select * from history,score where history.task_id = score.task_id order by date_com desc limit 0,10";
我这sql语句想查的是同时history 和 score两个表task_id 相等的记录,
$histable = spClass("history");这句话显然是不可以。。 能告诉我要怎么写嘛??
我是初初初学者。。。。

2011-09-27 12:24:09

#5 jake

表关联,如果想用SQL,那么建议学习一下join的语法。或者可以用sp自带的表关联功能,请参考手册。

用SQL的话,直接下面这样写就行,当然你要先把SQL语句写对了。

$sql="SQL语句";
$histable = spClass("history");
$this->results = $histable->findsql($sql);
PS:没必要每次都强调初学者,初学者也要努力的。

2011-09-27 13:29:16