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_order 및 shop_user이며 연결 유형은 기본적으로 INNER 연결로 설정됩니다.
그러나 테이블을다른 접두사(예: pay_record)와 연결하면 위의 쿼리 문이 작동하지 않습니다. 이 경우 연결 문을 약간 수정해야 합니다.
Order::alias('o') ->join(['pay_record' => 'r'], 'o.pay_id = r.id') ->select();이런 방식으로 모델을 사용하여 쿼리에 대한 다양한 접두사와 테이블을 연결할 수 있습니다. 요약위 방법은 실제로 조인 함수의 조인 매개변수를 문자열에서 배열로 변경하는 것입니다
ThinkPHP는 훌륭한 개발 프레임워크이며 위의 연관 방법은 그 중 하나일 뿐이며 더 많은 방법을 사용할 수 있습니다. 공식 매뉴얼을 확인하세요: ThinkPHP 공식 매뉴얼.