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