Mysql 如何检索所有未应答的Q(uestion)?
我在Symfony2/Doctrine2中开发了一个问答模块(有点像StackOverflow,但用于另一个主题) 我只想找回所有没有答案的问题。我有两张桌子,问题和答案(他们有问题id)。我如何在DQL/Doctrine中做到这一点 问题: -身份证 -作者 -日期 -内容 - 答复 -身份证 -作者 -日期 -内容 -问题idMysql 如何检索所有未应答的Q(uestion)?,mysql,symfony,doctrine-orm,Mysql,Symfony,Doctrine Orm,我在Symfony2/Doctrine2中开发了一个问答模块(有点像StackOverflow,但用于另一个主题) 我只想找回所有没有答案的问题。我有两张桌子,问题和答案(他们有问题id)。我如何在DQL/Doctrine中做到这一点 问题: -身份证 -作者 -日期 -内容 - 答复 -身份证 -作者 -日期 -内容 -问题id 我尝试过不在,但在DQL中似乎不起作用 我尝试了一个小技巧,在问题上使用左连接和一个总是错误的条件(其中q.id
- 我尝试过不在,但在DQL中似乎不起作用
- 我尝试了一个小技巧,在问题上使用左连接和一个总是错误的条件(其中q.id<0)
- 我尝试使用COUNT(),但我需要所有的行结果,MySql不会为不存在的COUNT(q.responses)返回行
实际上,您可以测试左侧联接表中的任何列是否为空(因为如果联接失败,它们都将为空),但我倾向于检查正在联接的同一列,以便优化器必须处理尽可能少的列。您需要显示表结构。在看不到数据的情况下,很难告诉您要查询什么。数据结构非常简单,但我编辑它是为了更明确
select q.*
from question q
left join answer a on a.question_id = q.id
where a.question_id is null