Es gibt eine Tabelle der Chat-Teilnehmer, data_chats_parties
. In dieser Tabelle gibt es zwei Felder, team
und member
, die angeben, ob der Teilnehmer ein Mitglieds- oder Teamkonto ist. Wenn Team = 0, dann ist es ein Mitgliedskonto. Wenn team! = 0 ist es ein Team-Account.JOIN verschiedene Tabellen je nach Zustand
Wenn es ein Team-Konto ist, muss ich die name
Spalte aus der data_teams
Tabelle abrufen. Andernfalls muss ich die username
Spalte aus der data_members
Tabelle abrufen.
Offensichtlich funktioniert diese Abfrage nicht, aber es ist, was ich versuche zu erreichen.
SELECT data_chats_parties.*,data_teams.name,data_members.username
FROM data_chats_parties
IF (data_chats_parties.team!=0 THEN
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)
WHERE data_chats_parties.member!=1
GROUP BY data_chats_parties.id
Die WHERE data_chats_parties.member!=1
Linie sagt nur „Teilnehmer holen, die mich nicht sind“.
Kann dies auf diese Weise erreicht werden?
separate Abfragen Sie für jede verbinden und kombinieren sie mit 'UNION'. – Barmar