> > *                /-----\   /-----\
> > *               /       \ /       \
> > *              /         X         \
> > *             /         / \         \
> > *            /         /   \         \
> > *            |    A    | B |   C     |
> > *            \         \   /         /
> > *             \         \ /         /
> > *              \         X         /
> > *               \       / \       /
> > *                \-----/   \-----/
> > *
> >
> > Ok so INNER JOIN (B) is actually  A intersection of B  (in maths
> language)
> > and A and C are peripherals (outer)
> >
>
> No, LEFT CIRCLE (intersect) RIGHT CIRCLE defines the set that should be
> returned by an INNER JOIN. That would be just Area B. It's only going to
> return those rows from either table that match the ON condition(s).

Right that's qhet I had in mind but I wrote A int B instead of A int C.


> > So LEFT JOIN = A
> > Hence RIGHT JOIN is C   ??

>
> Almost... It's my fault for rushing through this. a LEFT JOIN is:
>  LEFT CIRCLE (union) (LEFT CIRCLE (intersect) RIGHT CIRCLE)


Actually LEFT JOIN depends on the left part of the predicate :
 select A , C from A left join C represents  A + A int C (B)

and

select C, A from C left join C  represents C + C int A (B)

and

select C , A from A left join C  represents A + C int A (B) but the columns
of C precede those of A in the produced table.


Isn't it ?



Sandy




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to