I've 2 tables, emp_master and passport_details.
emp_master(emp_id,first_name,email_id,dob,doj,status.........)
passport_details(id, emp_id,passport_number,given_name,......).
I am trying to fetch emp_id and first_name from emp_master who have not entered passport_details.
I tried different combination of SubQueries, used NOT IN, NOT EXISTS.
SELECT emp_id,first_name
FROM emp_master
WHERE emp_id NOT IN(SELECT emp_id FROM passport_details WHERE status=1);
I am getting error
You have an error in your SQL syntax near 'SELECT emp_id FROM passport_details WHERE status=1)' at line 3
I am using MySQL 3.23.
My question is
- Do MySQL 3.23 supports SubQueries?
- What could be the optimal query to fetch emp_id and first_name from emp_master who have not entered passport_details.
You can rewrite your query into
JOIN
statement like this.No, subqueries are not supported until 4.1: http://dev.mysql.com/doc/refman/4.1/en/mysql-nutshell.html
I don't have a 3.23 instance to test with, but this should work.
A quick Google suggests that subqueries were brought in in MySql 4.1. So they're not supported in 3.23.
Thy something along these lines instead: