gpt4 book ai didi

mysql - 我想将指定行中的一项插入到另一个表中

转载 作者:行者123 更新时间:2023-11-29 06:31:17 25 4
gpt4 key购买 nike

所以我有这两张表。我需要获取表 1 第 1 行第 3 列(在本例中为鸭子)中的所有内容,并将其插入到表 2 第 1 行第 6 列(标记为 [此处])

       table 1 (teams)
PK
team_id groupno tname oname onumber oemail group series
1 1 ducks laura 123 a@b.com A 1
2 2 birds john 456 c@d.com A 1
3 3 redds hanna 789 e@f.com A 1
4 4 blues mark 102 g@h.com A 1

team_id 和 groupno 虽然看起来相同,但 groupno 最多为 10(计算一个组中的所有团队),team_id 继续

       table 2 (games)
PK
game_id match_id time field group team1 team2 series
1 1 0900 1 A [here] N/A 1
2 2 0930 1 A N/A N/A 1
3 3 1000 1 A N/A N/A 1
4 4 1030 1 A N/A N/A 1

game_id 和 match_id 不同,math_id 最多为 36(计算单个系列赛中所有比赛的数量),game_id 继续

下面是我一直在使用的内容

UPDATE games INNER JOIN teams
ON games.game_id = 1
SET games.team2 = teams.tname
WHERE teams.series=1;

我想要的结果

示例:

  1. 对 2. --- 3. 对 4.
  2. 对 3. --- 2. 对 4.
  3. 对 4. --- 2. 对 3.

它应该从表 1 中获取名字并将它们排列到游戏位置中,以便每个团队相互对抗

 PK
game_id match_id time field group team1 team2 series
1 1 0900 1 A ducks birds 1
2 2 0930 1 A reds blues 1
3 3 1000 1 A ducks reds 1
4 4 1030 1 A birds blues 1
5 5 1100 1 A ducks blues 1
6 6 1130 1 A reds birds 1

最佳答案

我认为这应该匹配每个组合并将其放入游戏顺序:

UPDATE games g
INNER JOIN (
SELECT
(@cnt := @cnt + 1) game_id, t.team1, t.team2
FROM (
SELECT
DISTINCT t1.tname team1, t2.tname team2
FROM teams t1
CROSS JOIN (SELECT DISTINCT tname FROM teams) t2
WHERE t1.tname <> t2.tname
) t
CROSS JOIN (SELECT @cnt := 0) c
) mt ON mt.game_id = g.game_id
SET g.team1 = mt.team1,
g.team2 = mt.team2
;

不过我建议使用团队 ID 而不是团队名称。


如果你指的是 ids 那么:

UPDATE table2 ti
SET ti.item2 = (SELECT t1.item FROM table1 t1 WHERE t1.id = 3)
WHERE ti.id = 1
;

关于mysql - 我想将指定行中的一项插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56115177/

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