Debutant SQL
MyName
-
mohammede -
mohammede -
Bonjour,
Je dois faire une rquete en SQL mais je débute seulement c'est pourquoi cette requete me parait compliquée.
J'ai 2 tables : table1 et table2
Je veux mettre à jour la table1
mettre champA de table1 est à 'A'
où champA='T'
et où l'identifiant ( champB, champC) de la table1 n'est pas present dans la table2
(la table2 possède les meme champ B et C)
Je suis completement perdu dans les imbriquation de select.
Merci d'avance de votre aide.
Je dois faire une rquete en SQL mais je débute seulement c'est pourquoi cette requete me parait compliquée.
J'ai 2 tables : table1 et table2
Je veux mettre à jour la table1
mettre champA de table1 est à 'A'
où champA='T'
et où l'identifiant ( champB, champC) de la table1 n'est pas present dans la table2
(la table2 possède les meme champ B et C)
Je suis completement perdu dans les imbriquation de select.
Merci d'avance de votre aide.
A voir également:
- Debutant SQL
- Logiciel montage vidéo débutant - Guide
- Logiciel de programmation pour débutant - Guide
- Logiciel sql - Télécharger - Bases de données
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Requete sql pix - Forum PHP
6 réponses
En fait c'est pas compliqué, c'est comme t'as dit, mais avec des mots SQL !
Normalement :
update table1 set champA = 'A' where
champ1='T' and (champB,champC) not in
(select champB,champC from table2)
Normalement :
update table1 set champA = 'A' where
champ1='T' and (champB,champC) not in
(select champB,champC from table2)
A priori il aime pas le and(champB, champA) NOT IN....
j'ai comme erreur :
Elément syntaxique , n'est pas correct. Eléments possibles : < > = <
j'ai comme erreur :
Elément syntaxique , n'est pas correct. Eléments possibles : < > = <
Aïe,
Alors, tu utilises quoi comme base de données ? Je me demande si ce que je t'ai donné ne fonctionne que pour ORACLE.
Alors, tu utilises quoi comme base de données ? Je me demande si ce que je t'ai donné ne fonctionne que pour ORACLE.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
alors effectivement ça marche pas sous DB2 ça.
Il faudrait essaye le même ordre en remplaçant le couple (champB,champC) par la chaine champB concaténé avec champC sous DB2 l'opérateur de concaténation c'est +, donc l'ordre serait :
update table1 set champA = 'A' where
champ1='T' and (champB+champC) not in
(select champB+champC from table2)
A vérifier pour les parenthèses obligatoires ou non, voire interdites.
Il faudrait essaye le même ordre en remplaçant le couple (champB,champC) par la chaine champB concaténé avec champC sous DB2 l'opérateur de concaténation c'est +, donc l'ordre serait :
update table1 set champA = 'A' where
champ1='T' and (champB+champC) not in
(select champB+champC from table2)
A vérifier pour les parenthèses obligatoires ou non, voire interdites.