如何检索所有未答复的问题)?

时间:2014-05-19 07:33:55

标签: mysql symfony doctrine-orm

我在Symfony2 / Doctrine2中开发了一个问题/答案模块(很像StackOverflow但是另一个主题)。

我只想找回所有没有答案的问题。我有两个表,问题和答案(谁有问题_id)。我怎么能在DQL / Doctrine中做到这一点?

问题

-id

-author

-date

-content

-...

ANSWER

-id

-author

-date

-content

- 的 question_id


  • 我没试过,但它似乎不适用于DQL。
  • 我尝试了一个关于LEFT JOIN的小技巧和一个总是错误的条件(WHERE q.id< 0)
  • 我尝试使用COUNT(),但我需要所有行结果,并且MySql不会返回不存在的COUNT(q.reponses)行...

任何帮助欣赏!

由于

1 个答案:

答案 0 :(得分:1)

你提到左边加入""小技巧是正确的答案,除非您正在测试错误的列 - 您需要检查答案是否为空:

select q.*
from question q
left join answer a on a.question_id = q.id
where a.question_id is null

实际上你可以测试左连接表中的任何列是否为null(因为如果连接失败,它们都将为null),但我倾向于检查我加入的同一列,因此优化器必须处理尽可能少的列。