我有两个实体,即用户邮件和用户邮件。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
将直接检索帐户对象。