首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用反联接的SQL查询

使用反联接的SQL查询
EN

Stack Overflow用户
提问于 2013-01-02 14:49:26
回答 1查看 1K关注 0票数 0

我正在定义"match“,以便稍后在一些php中使用,因此我在选择中定义了它。我似乎不能让这个查询工作...我得到一个解析错误。有什么想法吗?

代码语言:javascript
复制
SELECT 
    aif_id, 
    fee_source_id, 
    company_name_per_sedar, 
    document_filing_date, 
    NVL a_aif_remaining.aif_id, 0, 1 match
FROM a_aif, a_aif_remaining
LEFT JOIN a_aif_remaining ON a_aif_remaining.aif_id = a_aif.aif_id
ORDER BY aif_id DESC;

这也不起作用:

代码语言:javascript
复制
SELECT 
    aif_id, 
    fee_source_id, 
    company_name_per_sedar, 
    document_filing_date, 
    CASE IF a_aif_remaining.aif_id  THEN 0 ELSE 1 match
FROM a_aif, a_aif_remaining
LEFT JOIN a_aif_remaining ON a_aif_remaining.aif_id = a_aif.aif_id
ORDER BY aif_id DESC;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-02 14:51:29

出现这个错误的原因是因为MATCH是一个保留字。你应该用反引号来转义。以下是保留字的列表

  • MySQL Reserved Keyword

试试这个,应该是CASE WHEN...

代码语言:javascript
复制
SELECT aif_id, 
       fee_source_id, 
       company_name_per_sedar, 
       document_filing_date, 
       CASE 
            WHEN a_aif_remaining.aif_id  IS NULL -- you should have condition on this line
            THEN 0 
            ELSE 1 
       END `match`
FROM   a_aif
       LEFT JOIN a_aif_remaining 
          ON a_aif_remaining.aif_id = a_aif.aif_id
ORDER BY aif_id DESC;

如果列的值是NULL,您可以简单地使用IF (最小化代码),例如

代码语言:javascript
复制
SELECT aif_id, 
       fee_source_id, 
       company_name_per_sedar, 
       document_filing_date, 
       IF(a_aif_remaining.aif_id IS NULL, 0, 1) `match`
FROM   a_aif
       LEFT JOIN a_aif_remaining 
          ON a_aif_remaining.aif_id = a_aif.aif_id
ORDER BY aif_id DESC;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14117961

复制
相关文章

相似问题

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