Anyway, the "where" statement is perfectly equal to the "join" operator, it is called, in general, "theta-join" and in this case it is called "equi-join" (equi...because in the where statement you only compare attributes by the '=' operator).
The only reason you want to use the "left-join", which is a particular case for a general "outer-join", is if you want to fill your result with "NULL" values rather than an empty records.
Jochem Maas ha scritto:
SELECT b.fldName, b.fldEmail, b.fldCountryCode, d.fldCode as FCode, b.fldMobile, a.fldTime as Time, c.fldUsername as Username FROM tblSubscribersChoices a LEFT JOIN tblUser c ON c.fldClientID = a.fldChoice LEFT JOIN tblSubscribers b ON b.fldID = a.fldClientID LEFT JOIN tc_countries d ON d.fldCode = b.fldCountryCode ORDER BY Username ASC
and if that works but doesn't give you repeat records try adding the DISTINCT keyword after SELECT.
Why are you so intrested in LEFT JOIN? I cn't help much since i don't
I'm not but his original query used JIONs and a LEFT JOIN is (IMHO) the easiest to understand. I didn't have the presence of mind to rewrite the query using a simple WHERE clause - hope your tip helps him.
btw: can anyone say if the LEFT JOIN or the alternative WHERE statement (in general?) is faster?
know the schema of the db and i can't see clear the meaning of the tables in the query.
Anyway try this:
d.fldCode as FCode,
a.fldTime as Time,
c.fldUsername as Username
FROM tblSubscribersChoices a, tblUser c, tblSubscribers b,
WHERE c.fldClientID = a.fldChoice AND b.fldID = a.fldClientID AND
d.fldCode = b.fldCountryCode
ORDER BY Username ASC
-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php