三种thinkphp多表查询及打印一下SQL语句

分类:其它系统

 1、table()函数

thinkphp中提供了一个table()函数,具体用法参考以下语句:
$list=$Demo->table('think_blog blog,think_type type')->where('blog.typeid=type.id')->field('blog.id as id,blog.title,blog.content,type.typename as type')->order('blog.id desc' )->limit(5)->select();
echo $Demo->getLastSql(); //打印一下SQL语句,查看一下
 
2、join()函数
看一下代码:
$Demo = M('artist');
$Demo->join('RIGHT JOIN think_work ON think_artist.id = think_work.artist_id' );
//可以使用INNER JOIN 或者 LEFT JOIN 这里一定要注意表名的前缀!
echo $Demo->getLastSql(); //打印一下SQL语句,查看一下
 
3、query方法
thinkphp提供了join方法来实现关联查询,但是很不好用,还是用原生的方便,所以,推荐大家用query方法。
 
        $Model = new Model();
        $sql = "SELECT a.id, a.attr_name, a.attr_input_type, a.attr_type, a.attr_values, v.attr_value, v.attr_price ".
                "FROM hh_typeattr AS a ".
                "LEFT JOIN hh_siteattr AS v ".
                "ON v.attr_id = a.id AND v.site_id = '$site_id' ".
                "WHERE a.type_id = " . intval($type_id) ." OR a.type_id = 0 ".
                "ORDER BY a.listorder, a.attr_type, a.id, v.attr_price, v.id";
        $row = $Model->query($sql);
本文链接: 三种thinkphp多表查询及打印一下SQL语句
版权所有:布士收藏夹在网络收集,如有侵犯你的权利, 请联系QQ:641868752。

评论

发表评论

*

* (显示gravatar头像)

Ctrl+Enter快捷回复

© 2014 布士收藏夹 all rights reserved.