Left outer join (jointure entre trois tables)?

J'ai une table principale que je dois récupérer des données. J'ai une jointure externe gauche où les champs correspondent à 40% du temps. Et puis j'ai une autre jointure où j'ai besoin de faire correspondre les données de la table A avec.

C'est le SQL en pseudo code. Cette requête ne fonctionne pas.

-- C'est la partie que je veux faire, mais ne fonctionne pas.
ET H. COL3 = A. ÉTAT????

Je suis en train de travailler avec IBM DB2.

SELECT DISTINCT
  APP_NO as app_no,
  A.STATE as state
  ...
  ... Fields
  ...
FROM 
  TABLE_A A
LEFT OUTER JOIN  
  TABLE_B HIST
ON
  HIST.COL1 = A.COL1
, TABLE_C B  
LEFT OUTER JOIN
  TABLE_D H  
ON
  H.COL2 = B.COL2
-- This is the part I want to do but doesn't work.
AND
  H.COL3 = A.STATE????
WHERE
  A.BRANCH = 'Data'
  • pourquoi il ne marche pas de travail? Quelles erreurs avez-vous?
  • Dans DB2, j'obtiens l'erreur suivante. Si je supprime la ligne incriminée, alors cela fonctionne. Erreur: SQL0338N Une clause associé à un opérateur de JOINTURE ou dans une instruction MERGE n'est pas valide. SQLSTATE=42972 (État:42972, Code Natif: FFFFFEAE)
  • S'il vous plaît aller à travers ce lien. techpint.com/programming/how-sql-joins-works. J'ai montré un exemple avec un script inclus. Il contient exactement le même cas que vous vous posez.
InformationsquelleAutor Berlin Brown | 2008-11-16