php – 如何在Doctrine 2中为1:1关系指定多个连接条件

前端之家收集整理的这篇文章主要介绍了php – 如何在Doctrine 2中为1:1关系指定多个连接条件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
文件说明:
class Cart
{
    // ...

    /**
     * @OneToOne(targetEntity="Customer",inversedBy="cart")
     * @JoinColumn(name="customer_id",referencedColumnName="id")
     */
    private $customer;

    // ...
}

这个注释代表了这样的sql

JOIN Customer c ON c.id = cart.customer_id

问题是我需要在那里添加额外的比较,例如:

JOIN Customer c ON c.id = cart.customer_id AND c.anotherField = <constant>

有什么解决方案吗?

UPD:

我现在需要的真正的附加条件是< const>在c.f1和c.f2之间

您可以使用WITH关键字指定其他连接条件,如您在某些 examples中所见.

我认为这应该让你去:

SELECT l,c FROM location
INNER JOIN Customer c
WITH CURRENT_TIMESTAMP() BETWEEN c.f1 AND c.f2
WHERE CURRENT_TIMESTAMP() BETWEEN l.f1 AND l.f2

删除了ON子句,因为我认为没有必要明确指定连接的ON字段,除非它们不是“标准”字段(每个实体的id)

还要注意对CURRENT_TIMESTAMP()的调用,该调用转换为MysqL的NOW().查看其他非常有用的聚合函数和表达式列表here

猜你在找的PHP相关文章