THINKPHP中关联查询(多表查询)可以使用表()方法或和连接方法,请看示例:
1、Table方法:定义要操作的数据表名称,可以动态改变当前操作的数据表名称,需要写数据表的全名,包含前缀,可以使用别名,例如:
型号 - >表('think_user用户)
- >在哪里('状态> 1')
- >选择();
型号- >的表(think_blog博客,think_type型)
- >在哪里('blog.typeid = type.id')
- >字段('blog.id为ID,blog.title的blog.content,type.typename类型')
- >订单('blog.id DESC')
- >限制(5)
- >选择();
型号 - >表(阵列('think_user'=>'用户','think_group'=>'组'))
- >在哪里('状态> 1')
- >选择();
型号 - >加入('工作,ON artist.id = work.artist_id')
- >“加入(”卡ON artist.card_id = card.id“)
- >选择();
/ / LEFT JOIN
型号- >表(用户U')- >连接(新闻N上U.id = N.cid)
- >字段('U. * N. *')
- >命令(ID DESC')
- >限制('8')
- >的findall();
型号 - >加入(RIGHT JOIN工作ON artist.id = work.artist_id')
- >选择();
/ / RIGHT JOIN
型号- >表('用户U')
- >加盟(阵列('右','新闻N上U.id = N.cid))
- >字段(U. * N. *')
- >命令(ID DESC')
- >限制('8')
- >的findall();
模型加盟(阵列(“工作,ON artist.id = work.artist_id','卡,ON artist.card_id = card.id'))
- >选择()
回声$型号 - > getLastSql()/ /打印一下SQL语句,查看一下
例2:
1,表中()
$名单= $('user_status统计,user_profile资料)用户>表 - >其中('stats.id = profile.typeid') - >字段('显示,轮廓作为ID,stats.display的stats.id。标题作为标题,内容的profile.content“) - >命令('stats.id DESC') - >选择();
2.1,加入(2)表查询
$用户=新模式(“用户”);
$名单= $用户 - >加入('RIGHT JOIN user_profile的ON user_stats.id = user_profile.typeid');
2.2,加入()多表查询
3,原生查询
型号新型号();
$ SQL ='选择a.id,a.title,从think_test1 b.content作为think_test2为b a.id = b.id'的$地图“。为了a.id'。排序。' 限制'$ P-> firstRow。','$ P-> ListRows设为
$ voList = $型号- >查询(SQL);