2013-07-26 18 views
8

Sto cercando di eseguire un aggiornamento relazionale utilizzando un join innjer e non riesco a ottenere la sintassi corretta.MySQL Inner Join Aggiornamento

Le file sono i seguenti:

Catalogue.Category_ID 
Catalogue.Visible 

Categories.Category_ID 
Categories.Category_Name 

Sto cercando di aggiornare il valore del campo visibile quando la categoria numeri ID partita e corrisponde il il nome corretto.

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

Mi scuso se si tratta di un errore di sintassi stupido, io non sono il più esperto con i database relazionali.

risposta

17

Credo che questa sia la sintassi corretta:

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

Fantastico! Non dovevo faticare per capirlo. Grazie compagno. – racl101

3

Si utilizza TSQL sintassi, ecco per MySQL

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

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

se si vuole accorciare la ricerca, clicca ALIAS

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

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

Credo che stiate cercando:

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