Thanks Tom

Doing as you suggested as well as applying the "st.group = 'B'" in the tbl4
ON achieved what I wanted.

Graham

> -----Original Message-----
> From: Tom Crimmins [mailto:[EMAIL PROTECTED]
> Sent: 01 February 2005 00:03
> To: Graham Cossey
> Cc: mysql@lists.mysql.com
> Subject: RE: Help with a query using multiple LEFT JOINS
>
>
> If you mean that you want to get a row even if tbl2 does not have
> a matching
> row for dcode, then move the conditions into the ON clause.
>
> Example based off of what you had:
>
> SELECT
> FROM tbl1 as d
> LEFT JOIN tbl2 as r ON (d.dcode=r.dcode AND r.mcode='AB' AND
> r.year=2004 AND
> r.month IN (1,2,3,4,5,6,7,8,9,10,11,12))
> 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 d.status!='X'
>   AND d.region='1A'
>   AND st.group = 'B'
>
> GROUP BY d.dcode, r.code
>
> You may want to do the same for tbl4 depending on the behavior you are
> looking for.
>
>
> ---
> Tom Crimmins
> Interface Specialist
> Pottawattamie County, Iowa
>
> -----Original Message-----
> From: Graham Cossey
> Sent: Monday, January 31, 2005 5:48 PM
> To: mysql@lists.mysql.com
> Subject: Help with a query using multiple LEFT JOINS
>
> 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?
>
> TIA
>
> Graham
>
>



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

Reply via email to