只有兩個AND語句中的第二個正在爲我讀取。我相信,我遇到了一個嵌套的問題,但在這一點不知道:MySQL多個AND語句條件 - CakePHP
...'conditions' => array(
"AND" => array(
array($ApplicantAge . ' BETWEEN Age.Min_Age AND Age.Max_age'),
'Zips.title' => $Zip,
'Applicant.amount' => array($comboType, $memberCount)
),
"AND" => array(
array($PsSpouseAge . ' BETWEEN Age.Min_Age AND Age.Max_age'),
'PlanDetail.company_id' => '27',
'Zips.title' => $Zip,
'Applicant.amount' => array($comboType, $memberCount)
)
),...
正如你可以看到,我試圖讓所有的記錄$ ApplicantAge。 'BETWEEN Age.Min_Age AND Age.Max_age AND ONLY特定記錄'PlanDetail.company_id'=> '27 AND $ PsSpouseAge。 '之間Age.Min_Age和Age.Max_age'), ...
這裏是我的SQL輸出:
WHERE ((18 BETWEEN `Age`.`Min_Age` AND `Age`.`Max_age`) OR (`Zips`.`title` = '98605') OR (`Applicant`.`amount` IN ('as', '2'))) AND ((24 BETWEEN `Age`.`Min_Age` AND `Age`.`Max_age`) AND (`PlanDetail`.`company_id` = 27) AND (`Zips`.`title` = '97378') AND (`Applicant`.`amount` IN ('as', '2')))
因爲它的立場,在'PlanDetail.company_id'=> '27'被重寫並且只有滿足該「PlanDetail.company_id」的結果=>「27」標準表示
我已經在這一段時間,所以它的所有的起始於眼睛視圖混搭。感謝您注意我的SQL邏輯的任何問題。
這裏是我的全部連接和條件現在:
$options = array(
'joins' => array(
array(
'table' => 'plans_zips',
'alias' => 'PZips',
'type' => 'inner',
'foreignKey' => false,
'conditions' => array('Plan.id = PZips.plan_id')
),
array(
'table' => 'zips',
'alias' => 'Zips',
'type' => 'inner',
'foreignKey' => false,
'conditions' => array('Zips.id = PZips.zip_id')
)
),
'conditions' => array(
'OR' => array(
'AND' => array(
array($ApplicantAge . ' BETWEEN Age.Min_Age AND Age.Max_age'),
'Zips.title' => $Zip,
'Applicant.amount' => array($comboType, $memberCount),
'NOT' => array(
'PlanDetail.company_id' => 27
)
),
array($PsSpouseAge . ' BETWEEN Age.Min_Age AND Age.Max_age')
)
),
我仍在試驗這個,但這是需要發生的事情的細分:1.獲取所有記錄(除了那些'PlanDetail.company_id'之外的所有記錄(WHERE $ ApplicantAge。'BETWEEN Age.Min_Age AND Age.Max_age') =>'27',然後添加記錄數組($ PsSpouseAge。'BETWEEN Age.Min_Age AND Age.Max_age')。你看到有兩個年齡變量。 – OldWest 2011-05-06 01:02:29
@Old所以所有記錄*(年齡介於x - y **而非**公司= 27)或(年齡在x - y之間)*? – deceze 2011-05-06 01:20:01
@Dec,是的。你理解正確。我正在嘗試OR運算符,但我無法獲得AND和OR一起工作。 – OldWest 2011-05-06 01:25:01