Hi Diana,

> > SELECT IF(ISNULL(network.level), 4, network.level) AS level,
> > member.photo_level 
> > FROM member 
> > LEFT JOIN network ON (network.from_id=101 AND network.to_id=member.id)
> > 
> > ORDER BY member.last_login DESC 
> > LIMIT 0,3
> > 
> > +-------+-------------+
> > | level | photo_level |
> > +-------+-------------+
> > |     4 |           4 |
> > |     4 |           4 |
> > |     4 |           4 |
> > +-------+-------------+
> > 3 rows in set (0.01 sec)
> > 
> > Then, when I add WHERE.
> > 
> > SELECT IF(ISNULL(network.level), 4, network.level) AS level,
> > member.photo_level 
> > FROM member 
> > LEFT JOIN network ON (network.from_id=101 AND network.to_id=member.id)
> > WHERE level <= member.photo_level
> > ORDER BY member.last_login DESC 
> > LIMIT 0,3
> > 
> > Empty set (0.00 sec)
> > 
> > I think it is supposed to return all rows, since all level is the same
> > as photo_level, but why does it return empty set? 
> 
> 
> Conditions with fields from the table in the LEFT JOIN side (in this
> case, "network") should be in the ON clause, not in the WHERE clause.
> Check the manual about using LEFT JOIN and try:
> 
> SELECT IF(ISNULL(network.level), 4, network.level) AS level,
> member.photo_level 
> FROM member 
> LEFT JOIN network ON (network.from_id=101 AND network.to_id=member.id
> AND network.level <= member.photo_level) 
> ORDER BY member.last_login DESC 
> LIMIT 0,3

Thank you for the reply. I have it fixed, the problem is I should have
used "HAVING" instead of "WHERE" and I couldn't use "AS level", because
HAVING will confuse it with network.level which is NULL. So here is the
working query.

SELECT IF(ISNULL(network.level), 4, network.level) AS level_alias,
member.photo_level 
FROM member 
LEFT JOIN network ON (network.from_id=101 AND network.to_id=member.id)
HAVING level_alias <= member.photo_level
ORDER BY member.last_login DESC 
LIMIT 0,3

Regards,
Batara

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

Reply via email to