【发布时间】:2016-06-07 01:11:11
【问题描述】:
有一个聊天参与者表,data_chats_parties。在此表中,有两个字段 team 和 member 表示参与者是成员还是团队帐户。如果 team=0 则它是一个成员帐户。如果 team!=0 则为团队帐户。
如果是团队帐户,我需要从data_teams 表中获取name 列。否则,我需要从data_members 表中获取username 列。
显然这个查询不起作用,但这是我想要实现的。
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
WHERE data_chats_parties.member!=1 行只是说“获取不是我的参与者”。
这种方式可以实现吗?
【问题讨论】:
-
对每个连接进行单独的查询,并将它们与
UNION结合起来。
标签: php mysql sql join inner-join