tp 5.1 프레임 워 크 데이터베이스 서브 조회 조작 실례 분석
먼저 구조 자 조회 SQL 은 다음 세 가지 방식 으로 하위 조 회 를 구축 할 수 있 습 니 다.
fetchSql 방법 사용 하기
fetchSql 방법 은 검색 을 하지 않 고 구 축 된 SQL 문 구 를 되 돌려 주 는 것 을 의미 하 며 지원
select
뿐만 아니 라 모든 CURD 검색 을 지원 합 니 다.
$subQuery = Db::table('think_user')
->field('id,name')
->where('id', '>', 10)
->fetchSql(true)
->select();
생 성 된 subQuery 결 과 는:
SELECT `id`,`name` FROM `think_user` WHERE `id` > 10
buildSql 구조 서브 조회 사용 하기
$subQuery = Db::table('think_user')
->field('id,name')
->where('id', '>', 10)
->buildSql();
생 성 된 subQuery 결 과 는:
( SELECT `id`,`name` FROM `think_user` WHERE `id` > 10 )
buildSql 방법 을 호출 한 후 실제 조회 작업 을 하지 않 고 이번 조회 의 SQL 문 구 를 생 성 합 니 다(헷 갈 리 지 않도록 SQL 양쪽 에 괄호 를 추가 합 니 다).그리고 저 희 는 후속 조회 에서 직접 호출 합 니 다.그리고 하위 조회 로 새로운 조 회 를 구성 합 니 다.
Db::table($subQuery . ' a')
->where('a.name', 'like', 'thinkphp')
->order('id', 'desc')
->select();
생 성 된 SQL 문 구 는 다음 과 같 습 니 다.
SELECT * FROM (
SELECT `id`,`name` FROM `think_user` WHERE `id` > 10 ) a
WHERE
a.name LIKE 'thinkphp'
ORDER BY
`id`
desc
폐쇄 구조 서브 조회 사용IN/NOT IN
와EXISTS/NOT EXISTS
같은 조 회 는 폐쇄 를 하위 조회 로 직접 사용 할 수 있다.예 를 들 어:
Db::table('think_user')
->where('id', 'IN', function ($query) {
$query->table('think_profile')->where('status', 1)->field('id');
})
->select();
생 성 된 SQL 문 구 는?
SELECT * FROM `think_user`
WHERE `id` IN ( SELECT `id` FROM `think_profile` WHERE `status` = 1 )
Db::table('think_user')
->whereExists(function ($query) {
$query->table('think_profile')->where('status', 1);
})->find();
생 성 된 SQL 문 구 는?
SELECT * FROM `think_user`
WHERE EXISTS ( SELECT * FROM `think_profile` WHERE `status` = 1 )
thinkpHP 와 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,ThinkpHP 입문 강좌,thinkpHP 템 플 릿 조작 기법 요약,ThinkPHP 상용 방법 총화,codeigniter 입문 강좌,CI(CodeIgniter)프레임 워 크 진급 강좌과Zend FrameWork 프레임 워 크 입문 강좌.본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
tp 5.1 프레임 워 크 join 방법 용법 사례 분석본 고의 실례 는 tp 5.1 프레임 워 크 join 방법의 용법 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다. 4.567914.방법 은 두 개 또는 여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.