【发布时间】:2016-09-22 21:36:01
【问题描述】:
我是 cakePHP 新手,在尝试围绕表格工作时,我遇到了从两个表格中获取特定列的问题。我想要实现的是:
SELECT categories_1.category_id,categories_2.name FROM categories_1 JOIN categories_2 ON categories_2.category_id = categories_1.category_id
我知道我能做到:
$query=$this->Categories1->find('all')->contain(['Categories2'])
但是,通过这种方式,我将整个表 categoires_2 作为内部数组,这使得结构更加复杂,并从第二个表中添加了不必要的列。
我尝试按照文档进行操作,但我想出的代码并没有真正起作用:
$query=$this->Categories1->find('all')
->select('Categories2.name','Categories1.category_id')
->join([
'table' => 'categories_2',
'alias' => 'Categories2',
'conditions' => array('Categories2.category_id' => 'Categories1.category_id')
]);
如果能帮助我更正代码,我将不胜感激... 谢谢
编辑: 蛋糕正在生成以下sql代码:
SELECT Categories2.name AS `Categories2__name` FROM categories_1 Categories1 INNER JOIN categories_2 Categories2 ON Categories2.category_id = :c0
【问题讨论】:
-
顺便说一句,我在 Models Categories2 -> belongsto 和 Categories1 ->hasmany 中设置了关系
-
您所说的“不起作用”到底是什么意思?请在描述错误消息或意外行为时具体说明!
-
现在没有错误,但是结果为空
-
生成的sql怎么样?
-
试试这个:$query=$this->Categories1->find()->select('Categories2.name','Categories1.category_id')->contain(['Categories_2']) ;
标签: php mysql cakephp cakephp-3.0