locations -------------- id code price value 1 22222 45.23 -97.82 2 33333 42.67 -98.32 3 44444 43.26 -98.65
I have a query that takes every user and looks into locations to see if the code, price and value match up. If they do then count it.
select count(*) from user_table u, locations l where u.user_code = l.code and u.price = l.price and u.value = l.value;
The answer to this should be 2, but when I run my query I get 4 (in fact more entries than user_table) which is incorrect. What am I doing incorrectly? I have been breaking my head over this for a while. Is there some other query to get the required results? Any help would be highly appreciated. I gave a simple example above, but the query runs over 2 tables with about a million entries in each. So I am unable to verify what is wrong, but I know the count is incorrect as I should not have more than what is in the user_table.