2013-07-26 7 views
8

मैं एक innjer join का उपयोग करके एक रिलेशनल अपडेट करने की कोशिश कर रहा हूं और सिंटैक्स सही नहीं लग रहा है।MySQL इनर अपडेट

पंक्तियों इस प्रकार हैं:

Catalogue.Category_ID 
Catalogue.Visible 

Categories.Category_ID 
Categories.Category_Name 

मैं जब श्रेणी ID को मैच और सही नाम अनुरूप दिखाई फ़ील्ड का मान अपडेट करने का प्रयास कर रहा हूँ।

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

माफ कीजिए अगर यह बेवकूफ वाक्यविन्यास गलती के लिए आता है, तो मैं संबंधपरक डेटाबेस के साथ सबसे अनुभवी नहीं हूं।

उत्तर

17

मेरा मानना ​​है कि यह उचित सिंटैक्स है:

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

बहुत बढ़िया! उसे बाहर निकालने के लिए संघर्ष नहीं करना पड़ा। धन्यवाद दोस्त। – racl101

3

आप TSQL सिंटैक्स का उपयोग कर रहे हैं, यहाँ MySQL

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

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

के लिए यदि आप क्वेरी को छोटा करना चाहते हैं, का उपयोग ALIAS

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

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

मुझे विश्वास है कि आप देख रहे हैं:

UPDATE 'Catalogue' SET 'Visible' = '0' FROM 'Catalogue' INNER JOIN 'Categories' ON Catalogue.Category_ID = Categories.Category_ID 
WHERE Categories.Category_NAME = 'Bases' 
संबंधित मुद्दे