首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询-多个语句不起作用

MySQL查询-多个语句不起作用
EN

Stack Overflow用户
提问于 2010-09-10 23:37:49
回答 2查看 3.1K关注 0票数 0

我尝试使用以下查询,如果它只有一条having语句,它就会按预期工作。如果我添加第二个having语句,它将不起作用。

代码语言:javascript
复制
SELECT candidate.first_name, 
 candidate.last_name, 
 qualification.code, 
 property.value AS funding_band_value, 
 qualification.funding_band,
 property.value AS qualification_level_value,
 qualification.qualification_level_id
FROM candidate_qualification, candidate, qualification, property
WHERE candidate_qualification.candidate_id=candidate.id and
candidate_qualification.qualification_id=qualification.id
HAVING funding_band_value = (select property.value from property where qualification.funding_band=property.id) and
HAVING qualification_level_value = (select property.value from property where qualification.qualification_level_id=property.id)

有人能解释一下为什么这个不起作用吗?我应该怎么做?

EN

回答 2

Stack Overflow用户

发布于 2010-09-10 23:46:50

具有与WHERE或GROUP BY相似的行为。引用它一次就可以开始使用它,并将多个语句与and或or运算符组合在一起。深入研究查询解析器可能会给出更明确的答案。

票数 1
EN

Stack Overflow用户

发布于 2010-09-10 23:40:45

您不需要使用here,只需使用AND,因此它是WHERE子句的一部分。

子查询不是必需的,这些表已经联接了。

像这样的东西应该更接近你想要的:

代码语言:javascript
复制
SELECT c.first_name, 
    c.last_name, 
    q.code, 
    p.value AS funding_band_value, 
    q.funding_band,
    p.value AS qualification_level_value,
    q.qualification_level_id
FROM candidate_qualification cq 
INNER JOIN candidate c ON cq.candidate_id=c.id 
INNER JOIN qualification q ON cq.qualification_id=q.id
INNER JOIN property p ON q.funding_band=p.id
    and q.qualification_level_id=p.id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3686017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档