Table "A" and Table "B" are joined at the physical layer by an ID field.
Table "A" is the primary table and has a larger population of ID values.
Table "B" is a secondary table, and contains a subset of the ID values.
In the Business Layer, these tables are connected via a Logical Join as follows:
- The diagram looks like this: Table "B" --> "Table "A"
- Properties: Table "A" on the left and Table "B" on the right
- Driving Table: None
- Type: Left Outer
- Cardinality: "0,1" for table "A", and "0,1" for table "B"
When we run this, we are only seeing records where the ID fields match on both tables. We need to see all records in table "A" even if they do not match anything in table "B".
A few thoughts about this...
- We've tried multiple combinations of changing properties and Join Types and such, but we're still experiencing the same issue.
- Also, when we run this SQL directly on the database, we are not seeing anything in the where clause that would indicate a "left outer" join. If we modify that on the database side to include a left outer join, it all works as expected.
- After much trial and error (mostly "error" at this point), can anyone spot what we're doing wrong?
- Also, can anyone suggest a good resource (online or even a hard copy reference manual) that explains some of this theory?
- One of our questions is, "What is meant by '0,1' cardinality?" This is one of many questions that has come up since we started researching this issue. Basically we're just looking for a guide to take some of the mystery out of this, and eliminate a lot of the guess work we've been doing.
Thanks!
Dennis