this question has answer here:
there table of chat participants, data_chats_parties
. in table, there 2 fields, team
, member
denote if participant member or team account. if team=0 member account. if team!=0 team account.
if team account, need fetch name
column data_teams
table. otherwise, need fetch username
column data_members
table.
obviously query not work, it's i'm trying achieve.
select data_chats_parties.*,data_teams.name,data_members.username data_chats_parties if ( data_chats_parties.team!=0 inner join data_teams on data_teams.id=data_chats_parties.team else inner join data_members on data_members.id=data_chats_parties.member ) data_chats_parties.member!=1 group data_chats_parties.id
the where data_chats_parties.member!=1
line says "fetch participants not me".
is possible achieve in manner?
you need use 2 different queries , perform union all
:
-- teams select dcp.*, dt.name data_chats_parties dcp inner join data_teams dt on dt.id = dt.team dcp.member <> 1 , dcp.team <> 0 union -- members select dcp.*, dt.name data_chats_parties dcp inner join data_members dm on dt.id = dt.member dcp.member <> 1 , dcp.team = 0