2012-02-24 52 views
0

我對我命名爲「OBJEKT」模式,它有這樣的關係:CakePHP的:如何在2個表查詢沒有加入

var ??? = array(
     'ObjektArtenInternet' => array(
      'className' => 'ObjektArtenInternet', 
      'foreignKey' => 'OBI_ID', 
      //'conditions' => '', 
      'fields' => 'OBI_SORTIERUNG', 
      //'order' => '' 
     ) 
    ); 

我想現在要做的是這樣一句話:

SELECT DISTINCT detailobjekt.OBI_ID,OBI_UET_BESCHREIBUNG, OBI_SORTIERUNG FROM detailobjekt,objektarten_internet WHERE detailobjekt.OBI_ID = objektarten_internet.OBI_ID

但我不知道如何設置正確的關係,以便做到這一點選擇。 隨着$belongsTo or $hasOne我總是得到一個連接,我不需要在這種情況下,我簡單地想要在上面的例子中查詢2個表。

我該怎麼做? 請幫我一把。 謝謝!

回答

0

CakePHP沒有這種查詢的ORM支持。你設置的任何關係都不會寫這樣的查詢。你有兩種選擇之一。

1-用戶ORM並允許基於關係發生JOIN。 2-使用$ this-> Model-> query()編寫您自己的查詢。

您將不得不衡量任一選項的優點/缺點。但爲什麼你不想做JOIN?允許連接有什麼問題?

此外,無論如何,MySQL在您的查詢上做了相當於INNER JOIN的操作。此查詢在語法上與您的句子相同:

SELECT * 
FROM <firstTable> a INNER JOIN <anotherTable> b 
ON a.<someColumn> = b.<anotherColumn>