테이블이 조인되지 않은 경우 개별 필드를 확인할 수 있습니다.
$user->find()->select(['userid', 'username'])->asArray()->all();
그러면 SQL도 정상입니다
select userid, username from ...
그러나 테이블 조인을 할 때는요. . .
$user->find() ->joinWith([ 'account' => function ($object) { $object->select(['account_name', 'account_level', 'account_status']); }, 'bank' => function ($object) { $object->select(['bank_name', 'bank_province', 'bank_branch', 'bank_account']); } ]) ->asArray() ->all();
쿼리 SQL을 보니
select * from ....
이게 뭐죠? 아니면 제가 사용하고 있는 방법에 문제가 있는 걸까요? ?
테이블이 조인되지 않은 경우 개별 필드를 확인할 수 있습니다.
$user->find()->select(['userid', 'username'])->asArray()->all();
그러면 SQL도 정상입니다
select userid, username from ...
그러나 테이블 조인을 할 때는요. . .
$user->find() ->joinWith([ 'account' => function ($object) { $object->select(['account_name', 'account_level', 'account_status']); }, 'bank' => function ($object) { $object->select(['bank_name', 'bank_province', 'bank_branch', 'bank_account']); } ]) ->asArray() ->all();
쿼리 SQL을 보니
select * from ....
이게 뭐죠? 아니면 제가 사용하고 있는 방법에 문제가 있는 걸까요? ?
joinWith 외부에 select를 작성해야 합니다.
$user->find()->select(['account_name', 'account_level', 'account_status', 'bank_name', 'bank_province', 'bank_branch', 'bank_account']) ->joinWith(['account', 'bank']) ->asArray() ->all();
물론 select *
이 됩니다. 왜냐하면 작업에서 관련 테이블을 쿼리할 때 select 필드만 지정하기 때문입니다.
그럼 개별적으로 했던 것처럼 select를 지정하면 됩니다
위에서 Yii2 공동 테이블 쿼리는 개별 필드를 확인할 수 없다는 것인가요? 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!