[Dbix-class] JOIN question

Bernhard Graf dbic2 at augensalat.de
Tue Nov 28 17:28:29 GMT 2006


Matt S Trout wrote:

> Bernhard Graf wrote:
> > Matt S Trout wrote:
> >>> SELECT me.title
> >>> FROM email me
> >>> LEFT JOIN chunk chunks ON chunks.email=me.id
> >>> LEFT JOIN chunk chunks_2 ON chunks_2.email=me.id AND
> >>> chunks.id!=chunks_2.id
> >>
> >> why not just join => [ qw/chunks chunks/ ] and add { 'chunks.id'
> >> => \"!= chunks_2.id" } to the where?
> >
> > Thanks for the answer, but this must be in the JOIN ... (ON ...)
> > part to work correctly.
>
> Why?

Err, because that's what left-joins are for, I think: Get a row with 
values NULL'ed where else with a normal join wouldn't get anything.

If you have a mysql db at hand you could simply c&p the example from the 
first mail into the test db and try it yourself. I would be very 
interested to see a way how to retrieve for example all text-only 
emails without "chunks.id!=chunks_2.id" being in the LEFT-JOIN-ON 
condition.
-- 
Bernhard Graf



More information about the Dbix-class mailing list