Je dois sélectionner des données à partir de deux tables en utilisant une jointure. C'est assez simple et ne pose aucun problème ici. Le problème se produit lorsque le champ que je rejoins est utilisé comme deux clés étrangères distinctes (je ne l'ai pas conçu). Donc, le champ d'identification auquel je participe est soit un nombre positif ou négatif.sql joindre le problème avec des négatifs
S'il s'agit d'un nombre positif, il se rapporte à ID_1 sur la table table_2, s'il s'agit d'un négatif, le nombre se rapporte à ID_2 sur la table table_2. Cependant, l'ID_2 sera un nombre positif (même s'il est enregistré comme négatif dans la clé étrangère). De toute évidence, il n'y a aucune contrainte pour appliquer ces - donc, en substance pas vraies clés étrangères:/
SQL J'utilise quelque chose comme ça va et est très bien pour les nombres positifs:
select t1.Stuff, t2.MoreStuff from table_1 t1
join table_2 t2 on t1.ID_1 = t2.ID_1
where ...
Comment intégrer l'aspect négatif de ceci dans la jointure. Est-ce seulement possible? Idéalement, je voudrais modifier la table à mes besoins, mais apparemment, ce n'est pas une option valable. Je suis bel et bien coincé.
La seule autre idée que j'ai eu est une instruction SQL séparée pour gérer ces étranges. Tout cela est exécuté par clr sql de C#. L'ajout d'une SqlCommand au code ralentira probablement les choses, donc je préférerais tout garder en une seule commande.
Votre contribution est la bienvenue, merci :)
il y a un assez long winded où clause évitera l'union mais merci pour l'entrée. Beaucoup de suggestions et je pense que je vais utiliser le vôtre Gary – Tikeb
Merci à tous pour la contribution :) – Tikeb