首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL SubQuery - MySQL 3.23

MySQL SubQuery - MySQL 3.23
EN

Stack Overflow用户
提问于 2012-07-04 04:37:41
回答 4查看 648关注 0票数 1

我有两张桌子,emp_master和passport_details。

代码语言:javascript
复制
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,不存在。

代码语言:javascript
复制
SELECT emp_id,first_name
FROM emp_master
WHERE emp_id NOT IN(SELECT emp_id FROM passport_details WHERE status=1);

我搞错了

代码语言:javascript
复制
You have an error in your SQL syntax near 'SELECT emp_id FROM passport_details WHERE status=1)' at line 3

我正在使用MySQL 3.23.

我的问题是

  1. MySQL 3.23支持SubQueries吗?
  2. 什么是从没有进入emp_id的emp_master和first_name中获取passport_details的最佳查询。
EN

回答 4

Stack Overflow用户

发布于 2012-07-04 04:42:15

代码语言:javascript
复制
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实例可供测试,但这应该是可行的。

票数 5
EN

Stack Overflow用户

发布于 2012-07-04 04:44:37

一个快速的谷歌建议子查询是在MySql 4.1中引入的。所以他们在3.23中不受支持。

相反,你的东西是这样的:

代码语言:javascript
复制
SELECT emp_id,first_name
FROM emp_master
JOIN passport_details ON emp_id
WHERE status = 1;
票数 2
EN

Stack Overflow用户

发布于 2012-07-04 04:47:01

1.)子查询是在MySQL 4.1 SubQuery in MySQL中添加的

您可以像这样将查询重写为JOIN语句。

代码语言:javascript
复制
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;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11322484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档