0

我在名为 categories 和 categories_description 的数据库中有两个表。在 categories_description 表中,我需要选择 categories_name 等于“轴承”的所有 categories_id。然后使用这些选定的 categories_id 编号,使用“bearings.jpg”更新类别表中的 categories_image。

我了解如何编写代码来选择 categories_id,但不确定如何使用该选择来更新另一个表中的相同 categories_id。

SELECT categories_id FROM categories_description WHERE categories_name = 'Bearings';

现在我需要在从上面选择的每个 id 处更新 categories_image 的类别表。

它应该是这样的,但我不确定如何将它们联系在一起。

UPDATE categories SET categories_image = 'bearings.jpg' WHERE categories_id = above statement
4

2 回答 2

2

使用IN

UPDATE categories 
SET categories_image = 'bearings.jpg' 
WHERE categories_id IN (
  SELECT categories_id 
  FROM categories_description 
  WHERE categories_name = 'Bearings'
)
于 2013-06-19T18:30:30.827 回答
1

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 有时在in使用subquery.

但总的来说,join语法是表达许多更新的强大方式,因此值得学习。

于 2013-06-19T18:37:58.530 回答