1
我試圖對3個表進行檢查,我將它們連接在一起。我不想使用硬編碼的真實表名,因爲我的項目高度發展,表前綴可能會改變。 Yii2中從3表中選擇哪裏有我在聯接表上的where語句選擇的最佳方式是什麼? 我可以從下面的代碼中得到我想要的。但正如我所說的,我不想使用硬編碼的表別名。任何想法如何解決這個或其他想法的建議將非常感激。DB在Yii2中使用別名從多個表中選擇
$userId = Yii::$app->user->id;
$result = \app\models\UserPermission::find()->joinWith([
'permission',
'permission.service'
])->where([
'prefix_user_permission.user_id' => $userId,
'prefix_permission.flag' => Permission::LOGIN,
'prefix_service.login_available' => Service::LOGIN_AVAIABLE,
])->all();
我想與此查詢落得:
SELECT *
FROM `prefix_user_permission` `up`
INNER JOIN `prefix_permission` `p` ON `up`.`permission_id` = `p`.`id`
INNER JOIN `prefix_service` `s` ON `p`.`service_id` = `s`.`id`
WHERE (`up`.`user_id`=43)
AND (`p`.`flag`='LOGIN')
AND (`s`.`login_available`=1);