OR Verknüpfung in WHERE-CLAUSE

Hallo

ich habe eine DB Abfrage in der eine Oder Verknüpfung vorkommt. Ich habe das derzeit etwas umständlich gelöst und würde gerne wissen, ob es da eine einfachere Lösung gibt. Vielen Dank für das Feedback.




$teamIds = array();

				$teamIds[] = "or";

				// get all ambassador team ids for WHERE clause for getting activities

				foreach (Yii::app()->HTC->getPmTeamId() as $test)

				{

					$teamIds[] = "ambassador_team_id = " . $test;

				}

				// get all activities of related teams, max 5

				$Activity = Yii::app()->db->createCommand()

					->select('*')

					->from('tbl_activity')

					->where($teamIds)

					->order('start_date DESC')

					->limit(5)

					->queryAll();



ID-Listen kannst du direkt mit folgender Syntax ein-, bzw. ausschließen:




// WHERE `id` IN (1, 2)

where(array('in', 'id', array(1, 2))

// WHERE `id` NOT IN (1, 2)

where(array('not in', 'id', array(1,2)))



Mehr Infos dazu (etwas weiter runterscrollen zum Absatz "where()"):

http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder#building-data-retrieval-queries

In deinem Fall dann in etwa:




$teamIds = Yii::app()->HTC->getPmTeamId();

 // get all activities of related teams, max 5

 $Activity = Yii::app()->db->createCommand()

    ->select('*')

    ->from('tbl_activity')

    ->where(array('in', 'ambassador_team_id', $teamIds))

    ->order('start_date DESC')

    ->limit(5)

    ->queryAll();



Hope this helps.

drx

Hi drx

Danke für die schnelle Antwort. Werde das gleich ausprobieren und dir dann feedback geben.

Lg

p3t6