mysql - 如何在 Phalcon 中建立有条件的连接

标签 mysql join phalcon

我有以下 SQL:

SELECT  `settings`.*, `character_settings`.`value`
FROM    `settings`
LEFT JOIN 
       `character_settings` 
ON     `character_settings`.`setting_id` = `settings`.`id`
        AND `character_settings`.`character_id` = '1'  

如何使用 Phalcon CreateBuilder() 重写相同的查询?

最佳答案

尝试这样的事情:

$rows = $this->modelsManager
             ->createBuilder()
             ->columns(array('Settings.*', 'CharacterSettings.value as char_value'))
             ->from('Settings')
             ->leftJoin('CharacterSettings', 'Settings.id = CharacterSettings.setting_id AND CharacterSettings.character_id  = 1')
             ->getQuery()
             ->execute();

foreach ($rows as $row) {
    print_r($row->settings->id . ' : ' . $row->char_value);
}

不要忘记将数据库列作为字段添加到模型中:

class Settings extends Phalcon\Mvc\Model
{
    public $id;

    public $name;

    ...

关于mysql - 如何在 Phalcon 中建立有条件的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24919774/

相关文章:

php - 如何清除 Phalcon 2.0 表单元素值

php - 使用 for 循环的性能 MySQL 查询

php - 如何合并 2 个 Select 查询

php - 如何创建一个包含由其他几个表组成的 post_id 和 post_table 列的表

具有多个多对多连接的 MySQL 选择导致非常慢的查询

php - 如何在 PhalconPHP 中缩小 HTML 代码

mysql - 如何在学说中插入非常引用

mysql - 在这种情况下,如何在MYSQL中统计结果呢?

mysql - Azure网站IIS不编码utf8

php - 检查英国日期是否在 SQL 中的两个日期之间