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发布于 2013-11-27 08:31:37
可以在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
发布于 2013-11-27 08:36:55
这应该能行。
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)))https://stackoverflow.com/questions/20237105
复制相似问题