我是cakephp的新手 我有两个表tb_product和tb_category 我想选择下面的sql。我怎么能用cakephp来做呢?
SQL:
SELECT tb_product.id, tb_product.name, tb_category.name
FROM tb_product
INNER JOIN tb_category
WHERE tb_product.cat_id = tb_category.cat_id"
谢谢大家的帮助!
tb_product:
----------
id
name
===========
tb_category:
-----------
cat_id
name
==========
先谢谢你了!
答案 0 :(得分:1)
您可以在Cake模型中为Product创建a model association,以根据cat_id外键自动加入hasOne关系中的Category,或者您可以将find()
查询作为{{ {3}}:
$results = $this->Product->find('all', array(
'joins' => array(
array(
'table' => 'tb_category',
'alias' => 'Category',
'type' => 'INNER',
'conditions' => 'Category.cat_id = Product.cat_id'
)
),
'fields' => array(
'Product.id',
'Product.name',
'Category.name'
)
));
模型关联看起来像这样:
class Product extends AppModel {
// ...
public $hasOne = array(
'Category' => array('foreignKey' => 'cat_id')
);
}
然后,当您查询产品型号时,应与其一起返回匹配的类别:
$results = $this->Product->find('all');