2013-07-26 65 views
8

Tôi đang cố gắng để thực hiện một bản cập nhật quan hệ bằng cách sử dụng một tham gia innjer và dường như không thể có được cú pháp chính xác.MySQL bên trong tham gia cập nhật

Các hàng như sau:

Catalogue.Category_ID 
Catalogue.Visible 

Categories.Category_ID 
Categories.Category_Name 

Tôi cố gắng để cập nhật các giá trị của trường có thể nhìn thấy khi loại số ID phù hợp và tương ứng với các tên chính xác.

UPDATE `Catalogue` 
SET `Visible` = '0' 
FROM `Catalogue` 
INNER JOIN `Categories` 
    ON Catalogue.Category_ID = Categories.Category_ID 
    AND Categories.Category_Name = 'Bases' 

Xin lỗi nếu xảy ra lỗi cú pháp ngu ngốc, tôi không phải là người có kinh nghiệm nhất về cơ sở dữ liệu quan hệ.

Trả lời

17

Tôi tin rằng đây là cú pháp thích hợp:

UPDATE `Catalogue` 
INNER JOIN `Categories` 
    ON Catalogue.Category_ID = Categories.Category_ID 
    AND Categories.Category_Name = 'Bases' 
SET `Visible` = '0' 
+0

Tuyệt vời! Không phải đấu tranh để tìm ra điều đó. Cảm ơn bạn đời. – racl101

3

Bạn đang sử dụng TSQL cú pháp, đây là cho MySQL

UPDATE `Catalogue` 
     INNER JOIN `Categories` 
      ON Catalogue.Category_ID = Categories.Category_ID 

SET `Visible` = '0' 
WHERE Categories.Category_Name = 'Bases' 

nếu bạn muốn rút ngắn thời truy vấn, sử dụng ALIAS

UPDATE Catalogue a 
     INNER JOIN Categories b 
      ON a.Category_ID = b.Category_ID 

SET Visible = '0' 
WHERE b.Category_Name = 'Bases' 
1

Tôi tin rằng bạn đang tìm kiếm:

UPDATE 'Catalogue' SET 'Visible' = '0' FROM 'Catalogue' INNER JOIN 'Categories' ON Catalogue.Category_ID = Categories.Category_ID 
WHERE Categories.Category_NAME = 'Bases'