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]