gpt4 book ai didi

mysql - 在 SQL 查询上使用 COALSCE 和 3 个 JOINS

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

SELECT teams.t_id, teams.t_name, teams.t_icon
(COALESCE((SELECT SUM(matches.m_hteam_score) FROM matches WHERE matches.m_tid = teams.t_id), 0) +
COALESCE((SELECT SUM(matches.m_ateam_score) FROM matches WHERE matches.m_tid2 = teams.t_id), 0)
) as totalscore
FROM teams
LEFT JOIN divisions ON divisions.d_id = matches.m_did
LEFT JOIN matches ON matches.m_did = divisions.d_id
LEFT JOIN leagues ON leagues.l_id = divisions.d_lid
WHERE leagues.l_id = ? AND matches.m_finished = ? AND matches.m_did = ?

我的查询给我错误“teams.t_icon”不存在,即使 team 应该类似于表名称并且 t_icon 是表中的列。

我不明白它是如何不起作用的,但是我在这里的 COALESCE 似乎会影响它,使查询无法正确运行。我尝试了不同的方法,当我更改连接和表名称时,它根本无法正常工作。

有什么想法吗?

错误:语法错误或访问冲突:1305 FUNCTION groups.t_icon 不存在'

最佳答案

正如我看到的错误,您忘记了列名称后的 , 。试试这个

SELECT teams.t_id, teams.t_name, teams.t_icon,
(COALESCE((SELECT SUM(matches.m_hteam_score) FROM matches WHERE matches.m_tid = teams.t_id), 0) +
COALESCE((SELECT SUM(matches.m_ateam_score) FROM matches WHERE matches.m_tid2 = teams.t_id), 0)
) as totalscore
FROM teams, matches
LEFT JOIN divisions ON divisions.d_id = matches.m_did
AND matches.m_did = divisions.d_id
LEFT JOIN leagues ON leagues.l_id = divisions.d_lid
WHERE leagues.l_id = ? AND matches.m_finished = ? AND matches.m_did = ?

在您的查询中,球队与比赛、分区和联赛之间没有任何关系

关于mysql - 在 SQL 查询上使用 COALSCE 和 3 个 JOINS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531989/

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