table('think_blog blog, think_type type')"과 같은 구문을 사용하여 Table 메서드를 사용하여 여러 테이블을 쿼리합니다. 2. Join 메서드를 사용하여 쿼리합니다. "$Model ->join('work ON 아티스트.id = work.artist_id')"와 같은 코드입니다."/> table('think_blog blog, think_type type')"과 같은 구문을 사용하여 Table 메서드를 사용하여 여러 테이블을 쿼리합니다. 2. Join 메서드를 사용하여 쿼리합니다. "$Model ->join('work ON 아티스트.id = work.artist_id')"와 같은 코드입니다.">

 >  기사  >  PHP 프레임워크  >  thinkphp에서 여러 데이터를 쿼리하는 방법

thinkphp에서 여러 데이터를 쿼리하는 방법

藏色散人
藏色散人원래의
2022-12-05 09:26:452113검색

thinkphp에서 여러 데이터를 쿼리하는 방법: 1. "$Model->table('think_blog blog, think_type type')"과 같은 구문을 사용하여 Table 메서드를 사용하여 여러 테이블을 쿼리합니다. 쿼리의 경우 코드는 "$Model->join('work ON Artist.id = work.artist_id')"와 같습니다.

thinkphp에서 여러 데이터를 쿼리하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, ThinkPHP 버전 5, Dell G3 컴퓨터.

thinkphp에서 여러 데이터를 쿼리하는 방법은 무엇입니까?

THINKPHP 매체 관련 쿼리(다중 테이블 쿼리)

THINKPHP 매체 관련 쿼리(다중 테이블 쿼리)는 table() 메서드 또는 조인 메서드를 사용할 수 있습니다. 예를 참조하세요.

1 테이블 메서드: 수행할 작업을 정의합니다. 데이터 테이블의 이름은 현재 작업에 대한 데이터 테이블의 이름을 동적으로 변경할 수 있습니다. 예를 들어 접두사를 포함하여 데이터 테이블의 전체 이름을 써야 합니다. :

$Model->Table('think_user user')
->where('status>1')
->select();
$Model->table('think_blog blog,think_type type')
->where('blog.typeid=type.id')
->field('blog.id as id,blog.title,blog.content,type.typename as type')
->order('blog.id desc' )
->limit(5)
->select();

Table 메소드의 매개변수는 문자열과 배열을 지원합니다. 배열 모드에서의 사용법:

$Model->Table(array('think_user'=>'user','think_group'=>'group'))
->where('status>1')
->select();

배열 정의를 사용하면 테이블 이름과 키워드 간의 충돌로 인한 오류를 피할 수 있다는 장점이 있습니다.

참고: 테이블 메서드가 정의되지 않은 경우 기본적으로 현재 모델에 해당하거나 정의된 데이터 테이블을 자동으로 가져옵니다.

2. 조인 메서드: 쿼리 조인 지원 조인 메서드의 매개 변수는 문자열과 배열을 지원하며 조인 메서드는 일관된 작업에서 여러 번 호출할 수 있는 유일한 메서드입니다. 예:

$Model->join('work ON artist.id = work.artist_id')
->join('card ON artist.card_id = card.id')
->select();
//Left Join
$Model->table('user U')
->join('news N on U.id=N.cid')
->field('U.*,N.*')
->order('id desc')
->limit('8')
->findall();

기본적으로 LEFT JOIN 방법이 사용됩니다. 다른 JOIN 방법을 사용해야 하는 경우

$Model->join('RIGHT JOIN work ON artist.id = work.artist_id')
->select();
//Right Join
$Model->table('user U')
->join(array('right','news N on U.id=N.cid'))
->field('U.*,N.*')
->order('id desc')
->limit('8')
->findall();

로 변경할 수 있습니다. 조인 방법의 매개 변수가 배열인 경우 조인 방법은 다음과 같습니다. 한 번만 사용되며 문자열 방식과 혼합하여 사용할 수 없습니다.

$Model->join(array(' work ON artist.id = work.artist_id', 'card ON artist.card_id = card.id'))
->select()

이러한 일관된 작업 방법을 사용하면 데이터 쿼리의 코드 명확성과 개발 효율성을 효과적으로 향상시킬 수 있습니다.

연속적으로 실행되는 SQL 문을 보는 방법:

echo $Model->getLastSql(); //打印一下SQL语句,查看一下

예제 2:

1, table()

$list = $user->table('user_status stats, user_profile profile')->where('stats.id = profile.typeid')->field('stats.id as id, stats.display as display, profile.title as title,profile.content as content')->order('stats.id desc' )->select();

2.1, Join()2 table query

$user = new Model('user');
$list = $user->join('RIGHT JOIN user_profile ON user_stats.id = user_profile.typeid' );

2.2, Join() 다중 테이블 질의

        $list = $Form->join('think_sort ON think_form.sort_id = think_sort.sort_id' )->join('think_brand ON think_form.brand_id = think_brand.brand_id' )->select();

3. 네이티브 쿼리

$Model = new Model();
$sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.','.$p->listRows;
$voList = $Model->query($sql);

추천 학습: "thinkPHP 비디오 튜토리얼"

위 내용은 thinkphp에서 여러 데이터를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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