Hi,
I keep having this fundamental problem. It seems like this should be easy enough, but whenever I have a query where I'm using OR in the WHERE clause and the query is performed on multiple tables, I get strange results. For example:
SELECT t1.title, t2.auth_name FROM t1, t2, WHERE cat_id = 1 OR cat_id = 2 AND t1.auth_id = t2.auth_id
You probably should use parentheses in your WHERE clause to explicitly group terms the way you want them evaluated.
I want this query to give me a list of all article titles from a content table (t1) and the author's name from a people table (t2) where, the author ID from t1 matches that of t2, AND the article is either from Category 1 or Category 2. What I get instead, though, is every possible combination of article titles and author names from both tables. So, if there were 10 authors in t2, each title would be listed 10 times, once with each author name.
Should I be using a different JOIN syntax? Am I totally mis-using the OR operator?
Note that if I only want results from one category (i.e.: SELECT t1.title, t2.auth_name FROM t1, t2, WHERE cat_id = 1 AND t1.auth_id = t2.auth_id) everything works just fine.
Thanks for any help,
Sam
-- Paul DuBois, Senior Technical Writer Madison, Wisconsin, USA MySQL AB, www.mysql.com
Are you MySQL certified? http://www.mysql.com/certification/
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]