J'ai 4 tables et je voudrais retourner les tables de la manière la plus efficace où les touches correspondent à leurs entrées correctes.Rejoindre des tables et retourner 2 entrées séparées avec des valeurs NULL
Tableau A colonnes:
[ SVC_PREFIX | SVC_CD | ... ]
Tableau Colonnes B:
[ SVC_PREFIX | SVC_CD | SVC_ID |... ]
Tableau Colonnes C:
[ SVC_ID | ... ]
Tableau colonnes D:
[ SVC_ID | ... ]
Le tableau A est mappé au tableau B par SVC_PREFIX et SVC_CD Le tableau B est alors responsable de la récupération des tables C et D via SVC_ID Les tables C et D sont presque identiques, sauf que le tableau D comporte quelques colonnes de moins que C Par exemple, C peut avoir un isGood et isSilly mais D aura seulement isSilly. Est-il possible de récupérer les entrées de sorte que D sera tiré avec une valeur NULL pour isSilly alors que C apportera les données correspondantes?
Voici un exemple: Tableau A colonnes:
[ SVC_PREFIX | SVC_CD | anotherData ]
[ 111 | 123 | AAA ]
Tableau colonnes B:
[ SVC_PREFIX | SVC_CD | SVC_ID ]
[ 111 | 123 | 007]
Tableau Colonnes C:
[ SVC_ID | isGood | isHappy ]
[ 007 | Y | Y ]
colonnes Tableau D:
[ SVC_ID | isGood ]
[ 007 | Y ]
données Je voudrais récupérer:
[ SVC_PREFIX | SVC_CD | anotherData | SVC_ID | isGood | isHappy ]
Les données réelles
[ 111 | 123 | AAA | 007 | Y | Y ]
[ 111 | 123 | AAA | 007 | Y | NULL ]
Je voudrais afficher à la fois C et la table D'comme des lignes séparées.
Actuellement, j'ai une jointure implicite, mais ne sont pas le résultat que je veux ...
SELECT *
FROM A,B,C,D
WHERE A.SVC_PREFIX = B.SVC_PREFIX
AND A.SVC_CD = B.SVC_CD
AND B.SVC_ID = C.SVC_ID
AND B.SVC_ID = D.SVC_ID
AND C.SVC_ID = D.SVC_ID
Merci pour l'aide!
Remarque: les bases de données ont des clés. Et les types forts. Il semble que vous pourriez JOIN A & B, et à gauche rejoindre B & C et B & D (ou C & D). – wildplasser
D'où provient cet enregistrement de '[111 | 123 | AAA | 007 | Y | NULL] '? je veux dire pourquoi il y a le 'null'? –
@JohnWoo Cet enregistrement n'existe pas techniquement.Cependant, le null est là pour montrer que c'est à partir de la table D où il est essentiellement les mêmes données à celle de C sauf qu'il n'a pas, pour cette instance, isHappy – bigbitecode