當不聯表時,可以查個別欄位。
$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 ....
坑爹呢這是?還是我用的方法有問題? ?
你應該把select寫在joinWith外面:
$user->find()->select(['account_name', 'account_level', 'account_status', 'bank_name', 'bank_province', 'bank_branch', 'bank_account']) ->joinWith(['account', 'bank']) ->asArray() ->all();
你應該把select寫在joinWith外面:rrreee
當然會是
因為你的操作只是在限定了查詢關聯表的時候會指定select字段.
所以還是向你單一的那樣,指定了單一的那樣,指定select就好
🎜以上就是Yii2聯表查詢不能查個別欄位?的內容,更多相關內容請關注PHP中文網(www.php.cn)! 🎜