Je cherche à rejoindre 3 tables, toutes avec les mêmes données sauf une colonne est un nom différent (date différente de chacune des 3 tables). Les trois tables ressemblent à celles suivantes. L'objectif est que si une condition existe dans le tableau 1 et / ou le tableau 2 déterminer si une condition le fait ou n'existe pas dans le tableau 3 pour chaque identifiant / condition. Je suis actuellement laissé à la table 2 du tableau 1, mais je suis conscient que cela ne comptait pas si une condition du tableau 2 n'existe pas dans le tableau, de toute façon toute aide serait utile. . merci! p> p>
4 Réponses :
Si votre base de données prend en charge code> Associez complète code>, vous pouvez simplement faire: sinon, il est un peu plus compliqué: Union tout code > et l'agrégation est une méthode: p>
Je suis d'accord sur la jointure complète entre Table1 et Table2, mais si c'était une jointure gauche à Table3 ("l'objectif est que si une condition existe dans le tableau 1 ou le tableau 2 déterminer si une condition fait ou n'existe pas dans le tableau 3 pour chaque individu id / condition. ")?
C'est correct et correspond à la condition si elle apparaît en 2018 et / ou 2019 et s'il n'est pas null.
Que diriez-vous de cette (SQL Server Syntaxe) ...
SELECT x.id , x.place , x.Condition_2018 , x.Condition_2019 , t3.Condition_2020 FROM ( SELECT COALESCE(t1.id, t2.id) AS id , COALESCE(t1.place, t2.place) AS place , t1.Condition_2018 , t2.Condition_2019 FROM Table1 AS t1 FULL OUTER JOIN Table2 AS t2 ON t1.id = t2.id AND t1.place = t2.place ) AS x LEFT JOIN Table3 AS t3 ON x.id = t3.id AND x.place = t3.place
Merci, j'ai fait des modifications et au lieu de rejoindre sur place utilisée t1.condition_2018 = t2.condition_2019 et dans la jointure gauche x.condition_2018 = t3.Condition_2020 ou x.condition_2019 = t3.Condition_2020 et exactement ce que je cherchais. Merci pour votre aide et tout le monde Elses.
Vous semblez vouloir tout dans le tableau3 et les matchs dans les deux autres tables. C'est juste rejoindre le fichier code> s:
Vous avez besoin d'un joint externe code> code> de Table1 code> et
TABLE2 code> et a
rejoindre code> sur
Tablef code>:
> id | place | Condition_2018 | Condition_2019 | Condition_2020
> --: | :---- | :------------- | :------------- | :-------------
> 123 | ABC | flu | flu | flu
> 456 | ABC | heart attack | null | heart attack
> 789 | def | null | copd | copd
J'aime la coalesce dans votre jointure; plus concis que ma réponse.
Tagez votre question avec la base de données que vous utilisez.
@Brad. . . Votre question pourrait être plus claire. Par exemple, si les conditions changent d'année en année?