thinkPHP的JOIN中表名要不要加前缀解决方案
发布网友
发布时间:2022-04-21 19:07
我来回答
共4个回答
热心网友
时间:2022-04-26 04:22
要,用双下滑下加表名大写方式,例如:
$count = D('Document')
->join('__TAG_DOCUMENT__ ON id = document_id')
->where(array('model_id'=>2,'status'=>1,'pid'=>0))
->count('DISTINCT id');
热心网友
时间:2022-04-26 05:40
不用加前缀,但是需要用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();
热心网友
时间:2022-04-26 07:15
加括号就行了
->join('(table B)', 'B.id=A.id', 'LEFT')
热心网友
时间:2022-04-26 09: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_mp($data);die;
return $this->fetch('index', ['user_list' => $user_list]);
}
这样就可以了