Crystal offers four different types of joins. There are many other types in SQL, but Crystal offers the basics that cover 99% of the needs. These joins are:
- Inner
Left Outer
Not Equal
Full Outer
Inner
Let's say we are joining Jobs and Customers. This join would give us only the records that have Jobs and Customers in the same record. If a Job was not yet connected to a Customer, then it would not display. The same for a Customer that was not linked to a Job, it would not display.
Left Outer
Using the same example from above, where table 1 on the left is the Jobs table, this join gives us all Jobs whether they have a Customer linked or not. The only Customer information returned from table 2 would be for Customers that are linked to Jobs. Customers not linked to Jobs are not returned.
Not Equal
This is a slightly odd join, it returns records from Jobs that don't have customers and Customers that don't have jobs.
Full Outer
In this case the join will return all Jobs and all Customer records. Those that don't have linked records will return empty fields for the missing data.
In writing this post I leaned on C.L. Moffatt's diagrams from his very informative post on codeproject.com. I recommend that you check it out. Do keep in mind his naming of the types of joins follow a different syntax than Crystal.
https://www.codeproject.com/articles/33 ... -sql-joins
The W3Shool always provides great information on SQL issues, so check them out here for more details on joins.
https://www.w3schools.com/sql/sql_join.asp
So you can see that when taken in scope of what Crystal can do, joins are straight forward and easy to understand.