簡體   English   中英

基於非空列的MySQL內部連接

[英]MySql Inner join based on non empty columns

    I have Two tables :
    Table1, Table2

我必須編寫一個SQL查詢,該查詢基於這些表上的<> 0條件在三列上具有內部聯接。 我的條件是

    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

您可以在join子句中使用條件語句(例如,情況)。

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

這應該工作。

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)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM