double possible avec:Utilisez la clé étrangère de plus d'une table dans SQL
Setting a foreign key to more than one table
OU
J'ai une table (maintable) dans ma base de données sql qui a 5 field.One de ces champs (FID) est la clé étrangère de 5 autres tables dans la même base de données. L'autre champ (TypeID) contient un ID qui indique que la clé FID appartient à quelle table de ces 5 tables.Par exemple si FID = 1000 et TypeID = 1 pour un enregistrement dans MainTable cela signifie que 1000 est une clé primaire dans la table numéro un.
Maintenant, je veux joindre ces tables à une nouvelle table donc j'ai vue et utilisé la commande LEFT OUTER JOIN entre chacune de ces 5 tables et maintable:
Select * From
(Select * From
(Select * From
(Select * From
(Select * From MainTable LEFT OUTER JOIN Table1 ON MainTable.FID=Table1.ID AND MainTable.TypeID=1)AS Temp1
LEFT OUTER JOIN Table2 ON Temp1.FID=Table2.ID AND Temp1.TypeID=2)AS Temp2
LEFT OUTER JOIN Table3 ON Temp2.FID=Table3.ID AND Temp2.TypeID=3)AS Temp3
LEFT OUTER JOIN Table4 ON Temp3.FID=Table4.ID AND Temp3.TypeID=4)AS Temp4
LEFT OUTER JOIN Table5 ON Temp4.FID=Table5.ID AND Temp4.TypeID=5
1) Est-ce ce qui précède interroger le meilleur pour ce but? ?
2) Est-il possible de fusionner certaines colonnes du tableau de résultat dans une colonne spéciale, je veux dire que si quelque chose comme le résultat ceci:
field1 field2 field3 field4
-------------------------------------------
value1 NULL NULL NULL
NULL value2 NULL NULL
NULL NULL value3 NULL
NULL NULL NULL value4
le convertir en quelque chose comme ci-dessous:
new_field
------------
value1
value2
value3
value4