thinkPHP的JOIN中表名要不要加前缀解决方案

如题所述

要,用双下滑下加表名大写方式,例如:

$count = D('Document')
->join('__TAG_DOCUMENT__ ON id = document_id')
->where(array('model_id'=>2,'status'=>1,'pid'=>0))
->count('DISTINCT id');
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-29
不用加前缀,但是需要用C('DB_PREFIX')连接表名。
$list = M('order o')->field('o.*,c.title')->where($map)->join('left join '.C('DB_PREFIX').'car c ON o.car_id = c.id')->order('o.id desc')->select();
第2个回答  2018-11-23
加括号就行了
->join('(table B)', 'B.id=A.id', 'LEFT')
第3个回答  2017-07-06
public function index() {
$grab = Db::table('tg_admin_log')->field("add_time,ip,u_id")->order('add_time desc')->limit(1)->buildSql();
$auth_group_access=Db::table('auth_group_access')->buildSql();
$auth_group=Db::table('auth_group')->buildSql();
$data=Db::table('auth_user a')
->join($auth_group_access.'b','a.id=b.uid','LEFT')
->join($auth_group.'c','b.group_id=c.id','LEFT')
->join($grab.'d','d.u_id=a.id','LEFT')
->field('a.admin_name,a.status,c.title,c.status,c.add_time,d.add_time,d.ip')
->select();
var_dump($data);die;
return $this->fetch('index', ['user_list' => $user_list]);
}
这样就可以了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网