Mysql SQL从表1中选择ID并将相同的ID更新到表2
我在数据库中有两个表,叫做categories和categories\u description。在类别描述表中,我需要选择类别名称等于“轴承”的所有类别id。然后,使用这些选定的类别id号,使用“beathers.jpg”更新类别表中的类别图像 我知道如何编写代码来选择categories\u id,但不确定如何使用该选择来更新另一个表中的相同categories\u idMysql SQL从表1中选择ID并将相同的ID更新到表2,mysql,sql,database,Mysql,Sql,Database,我在数据库中有两个表,叫做categories和categories\u description。在类别描述表中,我需要选择类别名称等于“轴承”的所有类别id。然后,使用这些选定的类别id号,使用“beathers.jpg”更新类别表中的类别图像 我知道如何编写代码来选择categories\u id,但不确定如何使用该选择来更新另一个表中的相同categories\u id SELECT categories_id FROM categories_description WHERE categ
SELECT categories_id FROM categories_description WHERE categories_name = 'Bearings';
现在我需要更新categories_图像中从上面选择的每个id处的categories表
应该是这样的,但我不确定如何将它们联系在一起
UPDATE categories SET categories_image = 'bearings.jpg' WHERE categories_id = above statement
在中使用:
UPDATE categories
SET categories_image = 'bearings.jpg'
WHERE categories_id IN (
SELECT categories_id
FROM categories_description
WHERE categories_name = 'Bearings'
)
在
中使用:
UPDATE categories
SET categories_image = 'bearings.jpg'
WHERE categories_id IN (
SELECT categories_id
FROM categories_description
WHERE categories_name = 'Bearings'
)
您可以使用update
/join
组合执行此类查询:
UPDATE categories c join
categories_description cd
on c.category_id = cd.category_id and
cd.categories_name = 'Bearings'
SET c.categories_image = 'bearings.jpg'
在您的情况下,主要区别在于性能。MySQL的旧版本有时在用子查询实现时做得很差
一般来说,join
语法是表达许多更新的强大方式,因此值得学习。您可以使用update
/join
组合执行此类查询:
UPDATE categories c join
categories_description cd
on c.category_id = cd.category_id and
cd.categories_name = 'Bearings'
SET c.categories_image = 'bearings.jpg'
在您的情况下,主要区别在于性能。MySQL的旧版本有时在用子查询实现时做得很差
不过,一般来说,join
语法是表达许多更新的强大方式,因此值得学习。感谢将被纳入join操作感谢将被纳入join操作