mysql - 使用在表 2 中找到的结果的最低 ID 更新表 1 行的 SQL 字段

标签 mysql sql sql-server join inner-join

好的,我有两个表:

表 1:

id, featured_id

表 2:

id, assigned_to, media_id

查询

SELECT * FROM table2 where assigned_to = 1

可能会产生多行被返回。

然后我想进行如下查询:

UPDATE table1 (featured_id) (WITH LOWEST media_id FROM table2 WHERE table2.assigned_to = table1.id)

我想为了匹配 table2.assigned_to = table1.id,我可以使用 INNER JOIN。 但是如何用最低值填充我不知道可能使用 order by 和 limit 但不确定语法。

有什么想法吗?

最佳答案

这是一个使用 min 加入子查询的选项:

update table1 t1
   join (select assigned_to, min(media_id) min_media_id
         from table2
         group by assigned_to) t2 on t1.id = t2.assigned_to
set t1.featured_id = min_media_id;

关于mysql - 使用在表 2 中找到的结果的最低 ID 更新表 1 行的 SQL 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359363/

相关文章:

mysql - SQL 查询将标签数计数为 0 而不是 NULL

mysql - 如何将返回的总和修剪到我想要的精度?

mysql - 选择包含一个或多个完全大写的单词的记录

sql-server - 如何为每个客户获取一行,包括 SQL 中订单的第一行

sql - SqlConnection 是否并行处理查询?

mysql - Like 查询中的规范

php - 从 HTML 中提取文本并将其传递给 PHP 脚本中的 MySQL 查询

mysql - 选择两个可为空的日期时间中最早的一个

包含多个 SELECT 语句的 SQL IN 语句

sql - 根据一列中的 id 从多行中获取单个记录