Let's have a little think about this one.
SELECT a.* FROM a,b WHERE a.id != b.id;
That means, select every record from a, where there is at least one record in b that has a.id!=b.id
In most cases that will mean that you get all records from table a, because there's (nearly) allways a record in b that has a different id than the current a.id
I'm guessing that dag wants to have all records in a where there is no record in b where a.id=b.id
Taken from the MySQL manual:
If there is no matching record for the right table in the ON or USING part in a LEFT JOIN, a row with all columns set to NULL is used for the right table. You
can use this fact to find records in a table that have no counterpart in another table:
select table1.* from table1
LEFT JOIN table2 ON table1.id=table2.id
where table2.id is NULL;