Comment joindre plusieurs tables lorsque je ne veux le faire que si une condition particulière est remplie ?
Exemple :
TABLE A
NUM TYPE
1 DUPLICATE
2 DUPLICATE
3 INTERACT
TABLE B
ID REF_TYPE REF_ID
1 ORDER 000001
1 SEVERE NULL
1 CATALOG 993004
2 ORDER 003320
2 CATALOG 994002
3 MILD NULL
3 INTERACTION NULL
3 CATALOG 992002
C'est là que les choses se compliquent...
ORDER_TABLE
ID ORDER_NAME
000001 ORDER1
003320 ORDER2
CATALOG_TABLE
ID CATALOG_NAME
992002 CATALOG1
993004 CATALOG2
994002 CATALOG3
Ce que je veux faire :
JOINED TABLE
NUM TYPE ORDER_NAME CATALOG_NAME
1 DUPLICATE ORDER1 CATALOG2
2 DUPLICATE ORDER2 CATALOG3
3 INTERACT NULL CATALOG1
En fait, il n'y a pas que les tables de commande et de catalogue que je dois joindre, mais il s'agit d'un exemple pour vous donner une idée de la manière dont vous pouvez appliquer la logique de la jointure pour satisfaire la condition.
J'ai essayé de joindre extérieurement les tables avec des sélections multiples (table_b b, table_b b1, table_b b2, etc.), mais je n'arrive pas à comprendre s'il y a un moyen de syntaxer les jointures de façon à ce que vous puissiez joindre seulement si une condition est remplie - joindre B1.REF_ID à ORDER_TABLE.ID ; mais seulement quand B1.REF_TYPE='ORDER'.
Quelqu'un peut-il nous aider ?