2015-05-11 15 views

Antwort

39

Unter der Annahme, dass Ihre Modelle BaseTwitter und BaseFollower entsprechend benannt werden, sollte diese Arbeit:

$subQuery = BaseFollower::find()->select('id'); 
$query = BaseTwitter::find()->where(['not in', 'id', $subQuery]); 
$models = $query->all(); 
+1

@ arogachew Vielen Dank für Ihre Antwort –

+0

Wenn es geholfen hat, können Sie die Antwort upvote/akzeptieren. – arogachev

+0

Ich muss 10 Minuten warten –

6
// SELECT * FROM (SELECT * FROM `user` WHERE `active` = 1) `activeusers`; 
$subquery = (new \yii\db\Query)->from('user')->where(['active' => true]) 
$query = (new \yii\db\Query)->from(['activeusers' => $subquery]); 

// subquery can also be a string with plain SQL wrapped in parenthesis 
// SELECT * FROM (SELECT * FROM `user` WHERE `active` = 1) `activeusers`; 
$subquery = "(SELECT * FROM `user` WHERE `active` = 1)"; 
$query = (new \yii\db\Query)->from(['activeusers' => $subquery]);