>PHP 프레임워크 >ThinkPHP >기본 테이블 접두사를 사용하지 않는 ThinkPHP의 조인 쿼리 정보

기본 테이블 접두사를 사용하지 않는 ThinkPHP의 조인 쿼리 정보

藏色散人
藏色散人앞으로
2021-04-30 09:26:212676검색

다음 thinkphp 튜토리얼 칼럼에서는 ThinkPHP의 조인 쿼리가 기본 테이블 접두사를 사용하지 않는다는 점을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

ThinkPHP의 조인 쿼리는 기본 테이블 접두어를 사용하지 않습니다

ThinkPHP의 상관 쿼리와 관련하여 공식 문서에서는 다음과 같이 설명합니다.
기본 테이블 접두사를 사용하지 않는 ThinkPHP의 조인 쿼리 정보

위의 조인 함수에는 세 가지 매개 변수가 필요합니다.

join

( 완료) 연결할 테이블 이름과 별칭은 세 가지 쓰기 방법을 지원합니다:

写法1:[ '完整表名或者子查询'=>'别名' ]
写法2:'完整表名 别名'
写法3:'不带数据表前缀的表名'

condition

关联条件,可以为字符串或数组, 为数组时每一个元素都是一个关联条件。

type

关联类型,可以为: INNER、LEFT、RIGHT、FULL,不区分大小写,默认为INNER。

다른 접두사

일반적으로 데이터베이스에서 쿼리되며 이 경우 기본값이 사용됩니다. 모두 (shop_)과 같은 테이블 접두사가 동일하므로 데이터베이스 모델관련 쿼리를 사용할 때 다음과 같이 작성되는 경우가 많습니다.

Order::alias('o')
     ->join('user u', 'o.user_id = u.id')
     ->select();
위 코드에서는 모델 쿼리를 사용하기 때문에 기본적으로 테이블에 추가됩니다. 접두사, 두 테이블의 전체 테이블 이름은

shop_ordershop_user이며 연결 유형은 기본적으로 INNER 연결로 설정됩니다.

그러나 테이블을

다른 접두사(예: pay_record)와 연결하면 위의 쿼리 문이 작동하지 않습니다. 이 경우 연결 문을 약간 수정해야 합니다.

Order::alias('o')
     ->join(['pay_record' => 'r'], 'o.pay_id = r.id')
     ->select();
이런 방식으로 모델을 사용하여 쿼리에 대한 다양한 접두사와 테이블을 연결할 수 있습니다.

요약

위 방법은 실제로 조인 함수의 조인 매개변수를 문자열에서 배열로 변경하는 것입니다

ThinkPHP는 훌륭한 개발 프레임워크이며 위의 연관 방법은 그 중 하나일 뿐이며 더 많은 방법을 사용할 수 있습니다. 공식 매뉴얼을 확인하세요: ThinkPHP 공식 매뉴얼.

관련 추천:
최신 10개 thinkphp 비디오 튜토리얼

위 내용은 기본 테이블 접두사를 사용하지 않는 ThinkPHP의 조인 쿼리 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제