2009-12-17 4 views
2

Je souhaite effectuer les opérations suivantes:Instruction d'insertion SQL

J'ai une table appelée Nom qui a un champ ID.

J'ai une autre table vide appelé Transcription

Je veux prendre les ID # s de nom et de les insérer dans la transcription où ils n'existent pas.

Deuxièmement, je veux créer 10 enregistrements avec une valeur de COURSE # différente dans la table de transcription.

Par conséquent pour chaque Name.ID je voudrais 10 enregistrements dans Transcript.ID avec une valeur différente sous cours # ie; 101.201.301

+1

Quelle base de données utilisez-vous? –

+0

Qu'est-ce qui motive ces 10 enregistrements supplémentaires? Est-ce que ce fait de 10 enregistrements provient d'une troisième table appelée "Course" ou quelque chose comme ça? Ou est-ce juste "insérer 10 enregistrements parce que c'est ce que je veux/on m'a dit de faire"? –

Répondre

1

Quelque chose comme cela pourrait fonctionner:

INSERT INTO TableB 

SELECT TableA.id FROM TableA 
LEFT OUTER JOIN TableB 
ON TableA.name = TableB.name 
WHERE TableB.id IS null 
0

Une autre requête qui renverra la même chose

INSERT INTO TABLEB SELECT TableA.ID FROm TableA WHERE ID NOT IN (SELECT Id FROM TableB)

+0

Mines plus rapide;) –

+0

Très probablement, mais je voulais montrer qu'il y a plus d'une solution :). Je vous ai fait voter en passant: p –

0

En supposant que vous obtenez vos numéros de cours de certaines table des cours en dehors, ici est le t-sql:

INSERT INTO transcript (name_id, course_id) 
SELECT n.name_id, c.course_id 
FROM name n 
CROSS APPLY courses c 
WHERE n.last_name = 'xxx' 

Ceci insérera tous les cours dans la table pour tous les noms trouvés par la clause where.