In article <[EMAIL PROTECTED]>,
"Graham Cossey" <[EMAIL PROTECTED]> writes:

> I'm hoping someone can help with a little problem I'm having with a query.
> In the query below I wish to return as least one row per tbl1, however I am
> only getting rows where there is at least an entry for tbl2 :

> SELECT ...

> FROM tbl1 as d
> LEFT JOIN tbl2 as r ON d.dcode=r.dcode
> LEFT JOIN tbl3 as pc ON (r.code=pc.code AND pc.from_period <= 200412 AND
> pc.to_period > 200412)
> LEFT JOIN tbl4 as st ON st.scode=r.scode

> WHERE r.mcode='AB'
>   AND d.status!='X'
>   AND d.region='1A'
>   AND r.year=2004
>   AND r.month IN (1,2,3,4,5,6,7,8,9,10,11,12)
>   AND st.group = 'B'

> GROUP BY d.dcode, r.code


> Can anyone help me see the light and show me where I'm being stupid?

For no matching entries in tbl2, r.* would be NULL, and that's
something you exclude in your WHERE clauses (r.mcode='AB' etc).
Depending on what you want, you might include those conditions in the
ON clause of your LEFT JOIN.


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

Reply via email to