2017-09-20 1 views
0

Code unten wird Abfrage wie dieseSubjquery außerhalb von Join

SELECT anrede FROM `l_anrede` INNER JOIN `person` ON `l_anrede`.id = `person`.id_anrede 

perfom Aber ich brauche eine Abfrage wie folgt aus:

SELECT anrede FROM `l_anrede` INNER JOIN `person` ON `l_anrede`.id=`person`.id_anrede WHERE 

person IN .id (SELECT id_person VON bewerber WHERE person .id = bewerber .id);

Irgendwelche Ideen, wie Sie diesen Code abrunden auf:

$query = LAnrede::find(); 
 
/* 
 
$subQuery = Bewerber::find()->select(['id_person']) 
 
       ->from('bewerber')->where('person.id= bewerber.id');*/ 
 

 
$query->select('anrede')->from('l_anrede')->innerJoin('Person', 'l_anrede.id = person.id_anrede'); 
 
var_dump($query->one());

Antwort

1

Sie müssen ->from('l_anrede') nicht verwenden, wenn youre LAnrede::find() Aufruf - Abfrage Daten aus der Tabelle mit Ihrem Modell zugeordnet wählen. Um die Unterabfrage in where() Methode zu verwenden, versuchen Sie wie folgt:

$query->andWhere(['person.id' => $subQuery]);