首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于非空列的MySql内连接

基于非空列的MySql内连接
EN

Stack Overflow用户
提问于 2013-11-27 08:18:14
回答 2查看 91关注 0票数 0
代码语言:javascript
复制
    I have Two tables :
    Table1, Table2

我必须编写一个SQL查询,该查询基于这些表上的<> 0条件,在三列上具有内部联接。我的情况是

代码语言:javascript
复制
    if(table1.ID != 0), then inner join on table1.ID = table2.ID else,

    if(table1.MemberID != 0), then inner join on table1.MemberID = table2.MemberID else,

    inner join on table1.PersonID = table2.PersonID
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-27 08:31:37

可以在join子句中使用条件语句(例如,大小写)。

代码语言:javascript
复制
select t1.*, t2.*
from table1 t1
inner join table2 t2 on 
            (case when 
                 t1.ID != 0 
                 then t1.ID =t2.Id
                 else
                 case when t1.MemberId !=0 
                      then t1.MemberId = t2.MemberId
                      else
                           t1.PersonId = t2.PersonId
                  end
            end)

请参阅SqlFiddle

票数 1
EN

Stack Overflow用户

发布于 2013-11-27 08:36:55

这应该能行。

代码语言:javascript
复制
select * 
from Table1, Table2
where table1.Personid = table2.personId
and (((Table1.id != 0) and  (Table1.id = table2.Id))
or ((Table1.memberid != 0) and (Table1.memberid = table2.memberId)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20237105

复制
相关文章

相似问题

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