将SQL查询插入cakephp中的控制器

时间:2015-04-21 03:00:51

标签: php mysql sql-server cakephp

我正在使用cake php version 2.4.1

我希望将这个SQL查询更改为cakePHP中我的控制器的PHP代码

SELECT id,name 
FROM providers 
WHERE id not in 
    (SELECT c.provider_id 
    FROM token_maps a 
    INNER JOIN token_map_groups b ON b.token_map_id = a.id 
    INNER JOIN token_map_group_providers c on c.token_map_group_id=b.id 
    LEFT JOIN providers p on p.id=c.provider_id 
    WHERE a.id=2
    )

我无法使用$this->Provider->query('sql query'); 因为它会给我一些不同于我在mysql中执行查询时的错误结果。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

起初我告诉过你,不建议在任何MVC框架中使用你的方法。您需要在Provider模型中声明一个方法,然后您可以编写cakePHP自定义查询。

查看How to create custom MySQL queries in CakePHP?

答案 1 :(得分:-1)

如果您在PHPMYADMIN中查询给出了确切的答案,那么请进行如下查询:

$this->loadModel('Provider');

$query = "SELECT id,name FROM providers WHERE id not in (SELECT c.provider_id  FROM token_maps a 
INNER JOIN token_map_groups b ON b.token_map_id = a.id 
INNER JOIN token_map_group_providers c on c.token_map_group_id = b.id 
LEFT JOIN providers p on p.id=c.provider_id 
WHERE a.id=2
)";

$this->Provider->query($query);