Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL从表1中选择ID并将相同的ID更新到表2_Mysql_Sql_Database - Fatal编程技术网

Mysql SQL从表1中选择ID并将相同的ID更新到表2

Mysql 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

我在数据库中有两个表,叫做categories和categories\u description。在类别描述表中,我需要选择类别名称等于“轴承”的所有类别id。然后,使用这些选定的类别id号,使用“beathers.jpg”更新类别表中的类别图像

我知道如何编写代码来选择categories\u id,但不确定如何使用该选择来更新另一个表中的相同categories\u id

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操作