In relational database theory, a join between tables can be thought of as a filtered product. A SQL
SELECT statement that joins tables without a
WHERE clause will produce a Cartesian product of rows in the tables. This can be thought of as the worst-case algorithm: a product without any filtering to pick the proper results.
We can use the
join() function to join two tables, as shown in the following commands:
def join(t1, t2, where):): return filter(where, product(t1, t2)))))
All combinations of the two iterables,
t2, are computed. The
filter() function will apply the given
where function to pass or reject items that didn't fit the given condition to match appropriate rows from each iterable. This will work when the ...