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