À l'aide de CAS Relevés dans la JOINTURE EXTERNE GAUCHE en SQL
J'ai un scénario où je veux passer sur deux tables différentes dans une jointure externe. Il va quelque chose comme ceci:-
select mytable.id,
yourtable.id
from mytable
left outer join (case
when mytable.id = 2 then table2
yourtable on table1.id = table2.id
else
table3 yourtable on table1.id = table3.id
end)
...mais ça ne fonctionne pas. Des suggestions?
Il pourrait être utile de réexaminer la conception des bases de données. Si les deux table2 et tableau3 possèdent les mêmes schémas, pourquoi sont-ils différents tableaux?
Il est également intéressant de ré-examen de votre exemple. Il semble y avoir alias/tablename mix-up.
Vient se joindre aux DEUX tables et déplacer des CAS, une partie de la colonne de la liste
Oui joindre fonctionne mais puis-je obtenir les valeurs dans deux colonnes différentes, pas dans un.
Les tables sont similaires, mais pas sur les mêmes choses. De sorte à les garder. Ses comme j'ai 2 tables,le personnel et les étudiants, se référant à une table, le corps professoral, qui ensuite se réfère à deux plus de tables etc. J'ai d'abord eu à traiter avec le premier cas, c'est à dire, obtenir l'facultés pour le personnel et les étudiants, tout en gardant une colonne pour le personnel et les étudiants. En tout cas, merci à tous.
Il est également intéressant de ré-examen de votre exemple. Il semble y avoir alias/tablename mix-up.
Vient se joindre aux DEUX tables et déplacer des CAS, une partie de la colonne de la liste
Oui joindre fonctionne mais puis-je obtenir les valeurs dans deux colonnes différentes, pas dans un.
Les tables sont similaires, mais pas sur les mêmes choses. De sorte à les garder. Ses comme j'ai 2 tables,le personnel et les étudiants, se référant à une table, le corps professoral, qui ensuite se réfère à deux plus de tables etc. J'ai d'abord eu à traiter avec le premier cas, c'est à dire, obtenir l'facultés pour le personnel et les étudiants, tout en gardant une colonne pour le personnel et les étudiants. En tout cas, merci à tous.
OriginalL'auteur s khan | 2010-03-22
Vous devez vous connecter pour publier un commentaire.
Utilisation (Oracle 9i+):
Vrai, j'ai pensé à ce sujet lors de la publication, mais a décidé de poster une requête qui correspondait à l'OP verbatim.
Merci. cela a bien marché et non, il ne sont pas censé être des valeurs dupliquées donc ce géré.
OriginalL'auteur OMG Ponies
Voici une autre possibilité, mais je n'ai pas essayé sur Oracle:
OriginalL'auteur Gabe
Cette requête rejoint les enregistrements de la table EMP, soit le DÉPARTEMENT de la table ou de la SPECIAL_OPS table, en fonction de la valeur de l'EMP.DEPTNO ...
J'ai inclus le filtre sur EMP.DEPTNO dans les clauses. Cela peut être nécessaire si les données dans les tables est exclusif (c'est à dire DEPTNO = 30 ne pouvait se joindre à DEPT et DEPTNO = 50 ne pouvait se joindre à SPECIAL_OPS). Toutefois, si l'identifiant peut apparaître dans les deux tableaux, il est aussi bien d'être explicite. En outre, de faire de notre intention claire est toujours une bonne pratique. En dehors de toute autre chose, nous ne pouvons pas être sûr à propos de l'avenir de l'état des données.
OriginalL'auteur APC