What happened is called a Cartesian product. You basically asked for a combination of every value from one table matched to every value from the other table. In your case you did have an "except"-type condition so you eliminated a few of the matches.
Let me explain it this way: Imagine you have two identical lists of names. Each list is 200 names long and there are no duplicates within the list. The query you just wrote would combine each of the first 200 names with each one of the other 199 names from the other table that didn't match so that your final results would be (200x199) or 39800 records. Way more than the 400 you started with, isn't it.... What you want to do is to write a query that lists every record from the dealers table OPTIONALLY matched up to rows on the blackgate_users table wherever the names match. This is what the LEFT JOIN operator was invented to do (you were using an INNER JOIN). Now, to find the non-matches you look for rows from the blackgate_users table where a normally non-null value IS NULL. Because you want ALL of the rows from the dealers table but only some of the rows from the blackgate_users table (you declare that when you say LEFT JOIN), the query engine fills in the missing rows from the "right hand" table (in this case blackgate_users) with all NULL values. SELECT dealers.account_no, dealers.DealerName, blackgate_users.User_Name, blackgate_users.DealerName FROM dealers LEFT JOIN blackgate_users ON dealers.account_no = blackgate_users.User_Name WHERE blackgate_users.account_no IS NULL So by looking for only those rows where the "right hand" table contains NULL values, you find the non-matching rows. Get it? Shawn Green Database Administrator Unimin Corporation - Spruce Pine Chip Wiegand <[EMAIL PROTECTED]> wrote on 11/11/2004 04:29:08 PM: > I have two tables I want to get out the rows that are different between > them. The results I am getting is almost 50,000 rows, but the two tables, > combined, contain only about 600 rows total. Here is the select statement > - > > SELECT dealers.account_no, dealers.DealerName, blackgate_users.User_Name, > blackgate_users.DealerName > FROM dealers, blackgate_users > WHERE dealers.account_no NOT > LIKE blackgate_users.User_Name > > in these tables the > dealers.account_no is the same data as the blackgate_users.User_Name > dealers.DealerName is the same data as the blackgate_users.DealerName > I just want the rows that are in the dealers table but not in the > blackgate_users table. > > Thanks for any help, > Chip Wiegand > Computer Services > Simrad, Inc > 425-778-8821 > 425-771-7211 (FAX) > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] >