0

我在名为“ 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 FROM detailobjekt, objektarten_internet WHERE detailobjekt.OBI_ID = objektarten_internet.OBI_ID

但我不知道如何设置正确的关系以进行此选择。由于$belongsTo or $hasOne我总是得到一个在这种情况下不需要的连接,我只想像上面的示例一样查询 2 个表。

我怎样才能做到这一点?请帮帮我。谢谢!

4

1 回答 1

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>
于 2012-02-25T06:40:56.980 回答