通过Doctrine2 dql中的许多人关联选择实体



我有两个实体,即用户邮件和用户邮件。UserAccount与用户邮件有一个OneTomany关联。我想做的是选择具有给定电子邮件的用户量。

如何生成类似以下SQL与DQL加入查询的内容:

SELECT a.* FROM user_account a
    INNER JOIN user_email e ON e.account_id = a.id
    WHERE e.address = 'someone@example.com'

如果我做SELECT account, email FROM UserEmail email JOIN email.account account WHERE email.address = :email,它会给我回复,这不是我想要的。

我只需要收回电子邮件,然后从中获取帐户?

这就是获取加入的全部内容:您的"电子邮件"对象包含此处的帐户。

SELECT e, a FROM UserEmail e JOIN e.account a WHERE e.address = :email

然后简单地做

$account = $email->getAccount();

另一种方法是使用该电子邮件选择所有帐户:

SELECT a FROM UserAccount a JOIN a.emails e WHERE e.address = :email

将直接检索帐户对象。

相关内容

  • 没有找到相关文章

最新更新