我正在使用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中执行查询时的错误结果。
任何人都可以帮助我吗?
答案 0 :(得分:2)
起初我告诉过你,不建议在任何MVC框架中使用你的方法。您需要在Provider模型中声明一个方法,然后您可以编写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);