on 3/6/03 4:59 PM, Katie Evans-Young at [EMAIL PROTECTED] appended the
following bits to my mbox:
> I need to only return a row from table1 if its id is not found in table2.
> The query below is how I think it should work. However (as I had imagined),
> this doesn't work. Syntax error (you can't put a select inside a select like
> that).
> SELECT table1.id FROM table1 WHERE table1.sold=1 AND table1.id NOT IN
> (SELECT table2.table1_id FROM table2)
> I went through all of the functions to use in a WHERE clause in my MySQL
> book...am I missing something?
Unfortunately, MySQL doesn't support sub selects so that syntax won't work.
You have a couple other options in MySQL:
1) Create a new temporary table with the results of the second query. Then
perform the first query on that temporary table. Then delete the temporary
table.
2) Rewrite the query with a JOIN, something like:
SELECT table1.id FROM table1 LEFT JOIN table2 ON table1.id=table2.table1_id
WHERE table1.sold=1 AND table2.table1_id IS NULL; (not tested)
More info can be found here:
<http://www.mysql.com/doc/en/ANSI_diff_Sub-selects.html>
Hope that helps.
Sincerely,
Paul Burney
<http://paulburney.com/>
Q: Tired of creating admin interfaces to your MySQL web applications?
A: Use MySTRI instead. Version 3.1 now available.
<http://mystri.sourceforge.net/>
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php