gpt4 book ai didi

mysql - 如何根据 JOINED 表中的 SELECT MAX() 更新 MySQL 表

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

我有 2 个 MySQL 表。

TableA
ID Total
01 0
02 0
03 0
...
99 0

TableB
ID Name Points Year
01 Joe 4 2013
01 Bill 2 2013
02 Sam 10 2013
02 Barb 1 2013
02 Joan 7 2013
...
15 Fred 0 2013
15 Jan 3 2013
...

我想根据 IDTable B 中的 MAX(Points) 值存储在 Total表 A

中的列

我有一个 MySQL 查询,可以获取 MAX(Points)。我想知道我是否可以使用 Join 在一个 MySQL 查询中完成这一切,而不是在循环遍历我的 MAX() 查询的结果集时编写单独的 UPDATE 查询和某种SET SELECT

是否可以将 2 个查询合并为 1 个查询?

这是我的 MAX() 查询:

$result = mysql_query('
SELECT id, MAX(Points)
FROM TableB
WHERE year = "' . date('Y') . '"
GROUP BY id
') or die(mysql_error());
while ($row = mysql_fetch_row($result)) {
mysql_query('
UPDATE TableA
SET Total = "' . $row[1] . '"
WHERE id = "' . $row[0] . '"
') or die(mysql_error());
}
mysql_free_result($result);

谢谢

最佳答案

尝试将其用作您的 SQL 语句:

UPDATE TableA, TableB
SET TableA.Total = Max(TableB.Points)
WHERE TableA.ID=TableB.ID
AND TableB.year=<whatever>

拍摄 2

好的,试试这个吧

UPDATE tablea
JOIN (
SELECT id, max(points) AS total
FROM tableb
WHERE year=<whatever>
GROUP BY id
) AS sub ON tablea.id=sub.id
SET tablea.total=sub.total

关于mysql - 如何根据 JOINED 表中的 SELECT MAX() 更新 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17193099/

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