mysql更新与子查询2级深度
谢谢你看这个问题。我有点迷路了,希望有人能帮助我。下面是我想运行的更新查询mysql更新与子查询2级深度,mysql,sql-update,subquery,Mysql,Sql Update,Subquery,谢谢你看这个问题。我有点迷路了,希望有人能帮助我。下面是我想运行的更新查询 此查询现在返回一个错误: 1054-where子句中的未知列“spi.et_cross_rank” 一些背景: 从表:tmp\u排名\u tbl 我想获得第n个(spi.et\u return\u rank)记录 对于值为x的组(spi.et\u交叉等级) tmp\u排名\u tbl中的数据如下所示: team_poule_id | punten | goals_voor | goals_tegen | overal_r
此查询现在返回一个错误:
1054-where子句中的未知列“spi.et_cross_rank”
一些背景:
从表:tmp\u排名\u tbl
我想获得第n个(spi.et\u return\u rank)记录
对于值为x的组(spi.et\u交叉等级) tmp\u排名\u tbl中的数据如下所示:
team_poule_id | punten | goals_voor | goals_tegen | overal_rank
65 | 6 | 10 | 10 | 2
69 | 6 | 9 | 10 | 2
75 | 7 | 11 | 4 | 2
84 | 6 | 6 | 8 | 2
112 | 5 | 7 | 7 | 2
提前感谢您的帮助
在关于目标的评论中提出问题后进行更新,我会尽量简短。:-)此查询在网站上用于保存锦标赛的分数。有时你会有奇数的球队进入下一轮。在这一点上,我想选择最好的3号(spi.et_cross_rank)球队穿过波尔斯。这是保存在stroter_Poule_中的设置,每个Poule和第一、第二或第n个团队的排名(spi.et_return_排名)。tmp_ranking_tbl表中填写了波尔地区所有排名3的球队。如果填写了,我希望返回第一个或第二个记录,具体取决于stroter_Poule_indeling中的设置 stroter\u Poule\u indeling表的结构子集
row_id | team_id | et_ronde | et_cross_rank | et_return_rank
1 | null | 1 | 3 | 1
只需检查您的表中是否有一个名为et\u cross\u rank的列stroter\u Poule\u indeling 问题似乎是SQL在表中找不到该列
希望能有所帮助。也许加入而不是子查询更新。谢谢,你知道一个例子吗。还没有找到一种通过连接来实现此目的的方法。(可能是我看得太久了)。
(添加)我不知道如何使用连接的原因是rownum功能。记录集和限制的第n条记录的语句中不允许变量是的,就是这样。我发现dat子查询只能使用其直接父级的值,而不能使用“树”中任何更高的值。这意味着这个查询将不起作用。但是我还没有找到解决这个问题的方法。你的更新查询的目标是什么?让我看看其余的桌子,这样我可以更好地帮助你。但是,如果这是一个范围问题,您可以尝试在您的内部选择中添加表“stroter\u Poule\u indeling”,如下所示:从tmp\u ranking\u tbl trt,stroter\u Poule\u indeling spi,其中trt.overal\u rank=spi.et\u cross\u ranku更新了更多细节。对于您的查询,tmp_排名与Stroter_poule_indeling之间没有关系,因此不知道如何加入
row_id | team_id | et_ronde | et_cross_rank | et_return_rank
1 | null | 1 | 3 | 1