Doctrine 一个简单的innerJoin规则查询

Doctrine 一个简单的innerJoin规则查询,doctrine,dql,Doctrine,Dql,我尝试生成一个简单的SQL select: 选择c.com\u id、c.pro\u id、c.com\u nombre 来自bd_fn.fn_comuna c 内部连接bd_fn.fn_provincia p 在c.pro\u id=p.pro\u id上 其中p.pro_nombre='namepro'; 但是DQL抛出了这个错误: 条令\u表\u异常“带有消息”未知关系别名fn\u provincia 条令版本是1.XX,持久性是通过视觉范式创建的。 DQL是这样的: $q=条令\u查询:

我尝试生成一个简单的SQL select:

选择c.com\u id、c.pro\u id、c.com\u nombre 来自bd_fn.fn_comuna c 内部连接bd_fn.fn_provincia p 在c.pro\u id=p.pro\u id上 其中p.pro_nombre='namepro'; 但是DQL抛出了这个错误:

条令\u表\u异常“带有消息”未知关系别名fn\u provincia

条令版本是1.XX,持久性是通过视觉范式创建的。 DQL是这样的:

$q=条令\u查询::创建 ->选择“c.com\u id” ->来自“fn_comuna c” ->内部连接“c.fn_provincia p” ->其中'p.pro_nombre=?',$namepro; 类fn_comuna.php

更改:

p.pro_id = (SELECT p2.pro_id FROM etc..
致:

不确定为什么首先需要子查询,为什么不将其松开并替换为:

where pro_nombre = 'namepro'

从模型类中可以看到,fn_comuna和fn_provincia之间的关系称为pro

$this->hasOne'Fn_provincia as pro',数组 'local'=>'pro_id', “外国”=>“专业id” ; 因此,在处理join时必须使用此名称:

$q=条令\u查询::创建 ->选择“c.com\u id” ->来自“fn_comuna c” ->innerJoin'c.pro p' ->其中'p.pro_nombre=?',$namepro;
仍然不起作用。是的,子查询不可用,谢谢。问题是连接。我对奇怪错误的解决方案是INNERJOIN->select'c.com_id'->from'fn_comuna c'/->INNERJOIN'c.fn_provincia p'->其中'c.pro_id=select p2.pro_id from fn_provincia p2其中p2.pro nombre=?',$proname;谢谢你,你的条令模式是什么?和数据库是一样的吗?bd_fn是sql模式。我用ORM通过可视化范式生成了Persistence,Doctrine 1.xx,用于postgres数据库。连接是个问题。我不知道为什么,如果表格是相关的。你的条令模型类fn_comuna里面有什么?你需要把ORM生成的类放进去???当然可以。我们将能够看到条令对您的模式了解多少。@h3g0r_u很高兴听到这个消息!如果我的回答对你有帮助,如果你觉得有帮助的话,我可以投票给你。
where pro_nombre = 'namepro'