Cakephp:如何在没有连接的情况下查询2个表

时间:2012-02-24 07:50:51

标签: model find relation cakephp-2.1

我的模型名为“ Objekt ”,它有这种关系:

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

我现在要做的是这句话:

  

SELECT DISTINCT detailobjekt.OBI_ID,OBI_UET_BESCHREIBUNG,   OBI_SORTIERUNG来自detailobjekt,objektarten_internet WHERE   detailobjekt.OBI_ID = objektarten_internet.OBI_ID

但我无法弄清楚如何设置正确的关系才能做到这一点。 使用$belongsTo or $hasOne我总是得到一个我不需要的连接,在这种情况下,我很简单想要查询2个表,如上例所示。

我该怎么做? 请帮帮我。 谢谢!

1 个答案:

答案 0 :(得分:0)

CakePHP对此类查询没有ORM支持。您设置的关系不会写这样的查询。您有两种选择之一。

1-使用ORM并根据关系允许JOIN。

2-使用$ this-> Model-> query();

编写您自己的查询

您必须权衡任一选项的优缺点。但是你为什么不想加入呢?允许加入有什么问题?

此外,无论如何,MySQL在你的查询上都相当于INNER JOIN。此查询在语法上与您的查询相同:

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