我有两张桌子,emp_master和passport_details。
emp_master(emp_id,first_name,email_id,dob,doj,status.........)
passport_details(id, emp_id,passport_number,given_name,......).我正在试图从没有进入emp_id的emp_master和first_name那里找到passport_details和passport_details。
我尝试了不同的SubQueries组合,使用的不是IN,不存在。
SELECT emp_id,first_name
FROM emp_master
WHERE emp_id NOT IN(SELECT emp_id FROM passport_details WHERE status=1);我搞错了
You have an error in your SQL syntax near 'SELECT emp_id FROM passport_details WHERE status=1)' at line 3我正在使用MySQL 3.23.
我的问题是
发布于 2012-07-04 04:42:15
select em.emp_id, em.first_name
from emp_master em left join passport_details pd
on pd.emp_id = em.emp_id and pd.status = 1
where pd.emp_id is null我没有一个3.23实例可供测试,但这应该是可行的。
发布于 2012-07-04 04:44:37
一个快速的谷歌建议子查询是在MySql 4.1中引入的。所以他们在3.23中不受支持。
相反,你的东西是这样的:
SELECT emp_id,first_name
FROM emp_master
JOIN passport_details ON emp_id
WHERE status = 1;发布于 2012-07-04 04:47:01
1.)子查询是在MySQL 4.1 SubQuery in MySQL中添加的
您可以像这样将查询重写为JOIN语句。
SELECT a.emp_id,
a.first_name
FROM emp_master a
LEFT JOIN passport_details b
on a.emp_id = b.emp_id
WHERE a.`Status` = 1 AND
b.emp_id IS NULL;https://stackoverflow.com/questions/11322484
复制相似问题