【问题标题】:How to do a join with ttwo tables?如何与两个表进行连接?
【发布时间】:2010-06-03 07:06:15
【问题描述】:

嗨,

我尝试翻译这个查询:

SELECT *
FROM `reunion` , lieu
WHERE reunion.lieu_reunion = lieu.id_lieu

推动查询:

$c=new Criteria();
$c->addJoin(ReunionPeer::LIEU_REUNION,LieuPeer::ID_LIEU, Criteria::LEFT_JOIN);
$this->reunions = ReunionPeer::doSelect($c);

但是在我的模板中,当我创建 print_r($reunions) 时,字段“ville”(来自表 'lieu')不存在。

为什么??

【问题讨论】:

    标签: symfony1 criteria propel


    【解决方案1】:

    首先,您的推进查询将被转换为:

    SELECT * FROM `reunion` LEFT JOIN lieu ON (reunion.lieu_reunion = lieu.id_lieu);
    

    那么我可以建议这个:

    $c=new Criteria();
    $c->clearSelectColumns();
    ReunionPeer::addSelectColumns($c);
    LieuPeer::addSelectColumns($c);
    
    $c->addJoin(ReunionPeer::LIEU_REUNION,LieuPeer::ID_LIEU, Criteria::LEFT_JOIN);
    $this->reunions = ReunionPeer::doSelect($c);
    

    【讨论】:

      【解决方案2】:

      如果您在数据库模式中声明了此外键,Propel 将为您创建额外的函数,在一个查询中执行相关表和对象的连接和水合:

      $this->reunions = ReunionPeer::doSelectJoinLieu(new Criteria());
      

      【讨论】:

        猜你喜欢
        • 2020-01-13
        • 2013-05-04
        • 2017-03-21
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 2022-11-10
        • 2016-01-13
        • 1970-01-01
        相关资源
        最近更新 更多