Comment puis-je écrire une instruction INSERT si j'obtiens les valeurs de colA de Table, colB de TableT et colC de TableS?
exemple: INSERT INTO TableA (colA, colB, colC) VALEURS (?,?,?)
Des idées si c'est possible?
INSERT INTO TableA(colA, colB, colC)
SELECT TableX.valA, TableY.valB, TableZ.valC
FROM TableX
INNER JOIN TableY ON :......
INNER JOIN TableZ ON ........
Bien sûr, TableX, TableY et TAbleZ pourraient également être liés d'une autre manière (pas INNER JOIN).
Si vous ne trouvez aucune relation entre les tables AT ALL, vous pouvez également effectuer trois opérations distinctes.
SELECT @value1 = valA FROM TableX WHERE ......
SELECT @value2 = valB FROM TableY WHERE ......
SELECT @value3 = valC FROM TableZ WHERE ......
et puis un insert comme ceci:
INSERT INTO TableA(colA, colB, colC)
VALUES(@value1, @value2, @value3)
C'est le dernier recours ultime, vous ne pouvez pas tout exprimer dans une seule déclaration SELECT
.
Marc
En réponse à la réponse de marc_s, vous pouvez interroger des tables non liées dans une sélection depuis, comme:
INSERT INTO TableA
(colA, colB, colC)
SELECT
(SELECT valA FROM TableX WHERE ...),
(SELECT valB FROM TableY WHERE ...),
(SELECT valC FROM TableZ WHERE ...)
Insert into TableA (ColA, ColB, ColC) . . .
Il doit s'agir des noms de colonne tels qu'ils figurent dans le tableau A .
Insert into TableA (ColA, ColB, ColC) . . .
Select TableX.Col1, TableY.Col1, TableZ.Col5
From TableX, TableY, TableZ
Where . . .
Vous devrez joindre les tables dont vous voulez faire la sélection.
Voici une ressource sur les jointures SQL:
www.w3schools.com/sql/sql_join.asp
Vous voudrez peut-être consulter ce livre gratuit PDF des personnes de www.simple-talk.com qui couvre les bases de SQL: