gpt4 book ai didi

php - 根据条件连接不同的表

转载 作者:行者123 更新时间:2023-11-29 11:29:24 27 4
gpt4 key购买 nike

有一个聊天参与者表 data_chats_parties 。在此表中,有两个字段:teammember,表示参与者是成员帐户还是团队帐户。如果 team=0 则为成员(member)账户。如果 team!=0 则为团队帐户。

如果是团队帐户,我需要从 name 表中获取 data_teams 列。否则,我需要从 username 表中获取 data_members 列。

显然这个查询不起作用,但这就是我想要实现的目标。

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 行只是说“获取不是我的参与者”。

是否可以通过这种方式实现这一目标?

最佳答案

您需要使用 2 个不同的查询并执行 UNION ALL:

-- Get teams
SELECT
dcp.*, dt.name
FROM data_chats_parties dcp
INNER JOIN data_teams dt
ON dt.id = dt.team
WHERE
dcp.member <> 1
AND dcp.team <> 0

UNION ALL

-- Get members
SELECT
dcp.*, dt.name
FROM data_chats_parties dcp
INNER JOIN data_members dm
ON dt.id = dt.member
WHERE
dcp.member <> 1
AND dcp.team = 0

关于php - 根据条件连接不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com