article表 : 文章表 列 类型 注释 id mediumint(9) 自动增量 title varchar(60) 标题 keywords varchar(100) 关键字 desc varchar(255) 描述 author varchar(50) 作者 content text 内容 click mediumint(9) [0] 点击量 zan mediumint(9) [0] 点赞数 add_time int(10) 添加时间 cate_id mediumint(9) 所属分类id 和 cate表中的id对应 image varchar(255)
cate表 : 栏目表 列 类型 注释 id mediumint(9) 自动增量 cate_name varchar(30) 栏目名称 type tinyint(1) [1] 栏目类型,1: 列表栏目,2:单页栏目 pid mediumint(9) [0] 上级栏目id order mediumint(9) [0] 排序
设置article别名a,cate别名c,查询a的所有字段、c的cate_name字段,并分页查询
$data['article'] = ArticleModel::alias('a')->field('a.*,c.cate_name')->join(cate c','a.cate_id = c.id')->paginate(2);
object join ( mixed join [, mixed $condition = null [, string $type = ‘INNER’]] ) JOIN方法也是连贯操作方法之一,用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
参数
join 要关联的(完整)表名以及别名 支持三种写法:
写法1:[ ‘完整表名或者子查询’=>‘别名’ ] 写法2:‘完整表名 别名’ 写法3:‘不带数据表前缀的表名’
alias用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法等。
示例:
Db::table(‘think_user’)->alias(‘a’)->join('DEPT b ',‘b.user_id= a.id’)->select(); 最终生成的SQL语句类似于:
SELECT * FROM think_user a INNER JOIN think_dept b ON b.user_id= a.id