Or s for joins are usually LEFT joins and looking at the output. A NULL value tells that the join 'failed' and you can look at another conditions.
Say you have 1 table for customers, but some of the customers are actually 'children' of other customers (think a chain store like sears or walmart...they have a corporate office and individual stores) so you might write a query like:
select *
from orders as o
left join customers as nc
on o.customerID = nc.parentCustomerID
left join customer as pc
on o.customerID = pc.customerID
where nc.parentCustomerID = x
OR pc.customerID = x
nc is normal customer and they have no parentCustomerID (ID = 0)
pc is a parent customer...so you get a OR in the join.
you can also use a CASE statement in the JOIN clause, but that will be slower as every record is going to be check to see which condition of the JOIN to use.
Cascading parameters just needs tables to link together, and CR doesn't care if they are 'physical' tables in the database or 'virtual' tables from a Command object. As long as you can link them together they will cascade.
HTH