2010-06-03 69 views
0

HI,如何用ttwo表进行连接?

我尝试此查询翻译:

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($聚会),场“ville”(来自'lieu'表)不存在。

为什么?

回答

1

首先,你的Propel查询语句将被转换为:

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); 
1

如果你宣布你的数据库架构上的外键,行走将创建在一个查询中为您添加相关表格和对象的连接和水合的额外功能:

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