목차
thinkphp多表查询
php教程 php手册 thinkphp多表查询

thinkphp多表查询

Jun 13, 2016 am 09:28 AM

thinkphp多表查询

在学习thinkphp 的过程中,需要对多表进行操作,但是在实际过程中,总是遇到各种问题,所以写下这篇博文,作为自己的学习历程

 

在操作过程中,两表查询都没有问题,但是三表查询就开始出现问题

 

有以下三张表,分表为pl表(uid,content),user表(id,username),lyb表(uid,title)

 

多表查询操作有以下几种方法:

 

㈠视图模型(推荐)

 

定义视图模型,只需要继承Think\Model\ViewModel,然后设置viewFields属性即可

 

复制代码

public $viewFields = array(

        'pl'        =>array('uid','rid','content'),

        'user'        =>array('id','username','_on'=>'pl.uid=user.id'),

        'lyb'       =>array('uid'=>'lid','content'=>'lyb_content','title','_on'=>'pl.uid=lyb.uid'), //如果表中有字段重名,可以通过=>设置别名,'uid'=>'lid'

        );     

复制代码

视图查询:

 

视图查询和不同模型的查询一样,没有什么区别。

 

 $Model = D("pl") ->field('uid,title,username,lyb_content')->select();   //pl为数据库名

如果发现查询的结果存在重复数据,还可以使用group方法来处理。

 

㈡join

 

JOIN方法也是连贯操作方法之一,用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

 

join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。

 

INNER JOIN: 如果表中有至少一个匹配,则返回行,等同于 JOIN

LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

FULL JOIN: 只要其中一个表中存在匹配,就返回行

join方法可以支持以上四种类型:

 

同样是对以上三张表进行操作

 

$Model = D("pl")

          ->join('lyb on pl.uid = lyb.uid')

          ->join('user on pl.uid = user.id') 

          ->field('user.username,lyb.title,pl.content')

          ->select();

 

 

㈢table

 

table方法也属于模型类的连贯操作方法之一,主要用于指定操作的数据表。

 

用法

一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用table方法的情况通常是为了:

 

切换操作的数据表;

对多表进行操作;                                                                                                                                                                                          

$Model = D("pl")

  ->field('pl.content,user.username,lyb.title')

  ->table('pl,lyb,user')

  ->limit(10)

  ->select();

注:table方法默认查询的是所有字段的值

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)