J'ai 3 tables (formes, champs, fieldsperform):SQL Server: requête de jointure
forms | fields | fieldsperform
id | id | formid
group | group | fieldid
name | name
Ce que je veux est d'ajouter à fieldsperform les mêmes couples formes champs, mais pour un autre groupe. Voilà ce que j'ai maintenant:
formes:
id | group | name
0 | groupA | formA
1 | groupA | formB
2 | groupB | formA
3 | groupB | formB
Les champs
id | group | name
0 | groupA | fieldA
1 | groupA | fieldB
2 | groupA | fieldC
3 | groupB | fieldA
4 | groupB | fieldB
5 | groupB | fieldC
FieldsPerForm
formid | fieldid
0 | 0 (formA - fieldA)
0 | 2 (formA - fieldC)
1 | 1 (formB - fieldB)
1 | 2 (formB - fieldC)
Et Je veux insérer les mêmes couples mais pour le groupeB. Donc, je veux insérer:
formid | fieldid
2 | 3 (formA - fieldA)
2 | 5 (formA - fieldC)
3 | 4 (formB - fieldB)
3 | 5 (formB - fieldC)
Logic:
Vérifiez les couples FieldsPerForm
. Le premier couple est (0,0). formid = 0 est formA dans la table Forms
. Dans le tableau Forms
la forme Forma pour groupB a id = 2 de sorte que le formid du premier couple est 2. Puis faire la même chose pour la table Fields
et ainsi de suite
Votre logique pour former des paires de groupe B n'est pas claire pour moi. Pourquoi n'avons-nous pas '(2, 4)' en tant que groupe B? –
La paire @TimBiegeleisen (2,4) pour le groupe B est (formA, fieldB), cette paire n'existe pas pour le groupe A. – aggicd
Pourquoi n'existe-t-il pas 0,1 pour le groupe A? –