Hi Eve, You have made a very common mistake while using the "comma-join" method. I think if I translate your implicit inner join to an explicit inner join you will spot your own mistake:
SELECT resume.Section_Value, candidate.Location FROM resume INNER JOIN candidate WHERE resume.Section_ID = '1' AND MATCH (resume.Section_Value) AGAINST ('html') AND candidate.Location LIKE '%CA%' OR 'California' You did not link your two tables. You didn't say that "this column in resume matches up with this column in candidate" so the query engine put together what is known as a Cartesian product. You are finding all of the possible combinations of rows from both tables where your WHERE clause is true. You said you only get one row from "MATCH ... ('HTML')" (that's the contribution from the resume table). However, you are getting two rows from the candidate table based on "location like....". That's why you had two rows in your results. Imagine if you had gotten 3 rows back from the "Match..." clause... You would have had 6 records in your results and been really confused, eh? You can cure this by somehow equating the two tables. Depending on what form of INNER JOIN you want to write you ether need another WHERE condition or an ON clause. FORM 1(I prefer this form): SELECT resume.Section_Value, candidate.Location FROM resume INNER JOIN candidate ON candidate.id = resume.candidate_id WHERE resume.Section_ID = '1' AND MATCH (resume.Section_Value) AGAINST ('html') AND candidate.Location LIKE '%CA%' OR 'California' FORM 2 (in comma-joined format): SELECT resume.Section_Value, candidate.Location FROM resume, candidate WHERE resume.Section_ID = '1' AND MATCH (resume.Section_Value) AGAINST ('html') AND candidate.Location LIKE '%CA%' OR 'California' AND candidate.id = resume.candidate_id Like I said, it's a common mistake when you write your queries that way (comma-join) to leave out the relationship condition. Best Wishes, Shawn Green Database Administrator Unimin Corporation - Spruce Pine "Eve Atley" <[EMAIL PROTECTED]> wrote on 08/17/2004 01:22:45 PM: > > I think this is an easy question...I've set up a SQL statement like so: > > SELECT resume.Section_Value, candidate.Location FROM resume, candidate WHERE > resume.Section_ID = '1' AND MATCH (resume.Section_Value) AGAINST ('html') > AND candidate.Location LIKE '%CA%' OR 'California' > > ------------------ > And where 'html' should come up in 1 entry, I get duplicates when printing > out the field to the screen: > > ------------------ > html unix network php Over 10 years of HTML experience. 2 years networking > administration. > > html unix network php Over 10 years of HTML experience. 2 years networking > administration. > > ------------------ > > I can't decide if this is my code, or the SQL syntax. Would it be possible, > based on this statement, to have pulled back duplicates from the same > record? > > > > - Eve > > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] >