View Single Post

  #1 (permalink)  
Old 05-07-2008
GregoryD
 
Posts: n/a
Default Excluding information from results + syntax issue

We are currently running on mysql 4.0-27 at my business. I have what should
seem to be a basic query, but am having trouble with syntax errors and can't
figure out why.

I have two tables (there's more info in each table, but I doubt they're
germaine to the discussion):

users

+---------+-------------+--------------------+
| id | first_name | email |
+---------+-------------+--------------------+
| 1 | Bob | blah@blah.org |
| 2 | Fred | fred@fred.org |
| 3 | Mark | mark@mark.com |
| 4 | Dave | dave@dave.com |
+---------+-------------+--------------------+

and

opt

+-----+
| id |
+-----+
| 2 |
| 4 |
+---- +


I am trying to select all the records in users whose ids do not exist in
opt. The ids in both tables are unsigned INTEGER(10). In other words, the
results should be:

+---------+-------------+--------------------+
| id | first_name | email |
+---------+-------------+--------------------+
| 1 | Bob | blah@blah.org |
| 3 | Mark | mark@mark.com |
+---------+-------------+--------------------+

I have tried the following (not so much the right query as trying to figure
out why none of these queries work on the server):

SELECT * FROM users WHERE id <> ANY (SELECT id FROM opt);

SELECT * FROM users WHERE id IN (SELECT id FROM opt);

SELECT * FROM users WHERE users.id IN (SELECT id FROM opt);

In each case, I get a syntax error. What exactly am I doing wrong?

GregoryD


Reply With Quote