首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询100k条记录到5条记录

查询100k条记录到5条记录
EN

Stack Overflow用户
提问于 2015-06-26 02:58:24
回答 1查看 61关注 0票数 0

我有一个这样的要求,它应该连接两个表,一个表中有超过100k条记录,而另一个表中只有5条记录,如下所示

代码语言:javascript
复制
   Employee                              Dept                     Result
        id   Name    deptid               deptid   Name            Name     deptid   Name
        1    Jane     1                     1     Science          Jane      1     Science
        2    Jack     2                     2      Maths           Dane      1     Science
        3    Dane     1                     3     Biology          Jack      2      Maths
        4    Drack    3                     4      Social          Drack     3     Biology
        5    Drim                           5     Zoology          Kery      4      Social
        6    Drum     5                                            Drum      5     Zoology
        7    Krack                                                      
        8    Kery     4                                                 
        . 
        . 
        100k

需要使用哪个连接来以更好的方式获取查询,以获得如下所示的结果。我只想让查询与employee表中的其他表连接,该表具有dept,我在下面的查询中想到了这一点,但我想知道是否有更好的方法来做这件事。

代码语言:javascript
复制
Select e.name,d.deptid,d.Name from 
(Select deptid,Name from Employee where deptid IS NOT NULL) A 
and dept d where A.deptid=d.deptid;
EN

回答 1

Stack Overflow用户

发布于 2015-06-26 03:10:39

首先,我不确定为什么要以这种方式执行查询。应该更像是

代码语言:javascript
复制
SELECT A.name, D.deptid,D.Name 
FROM Employee A
INNER JOIN dept D
ON A.deptid = D.deptid

不需要IS NOT NULL语句。

如果这是一次性连接或偶发的,并且性能是关键(不是数据库中的永久查询),则可以完全省略连接,而使用CASE进行连接

代码语言:javascript
复制
SELECT 
   A.name, A.deptid,
   CASE 
      WHEN A.deptid = 1 THEN "Science"
      WHEN A.deptid = 2 THEN "Maths"
      ...[etc for the other 3 departments]...
   END as Name
FROM Employee A

如果这是permanent,并且performance是关键字,那么只需尝试对Employee表中的外键deptid应用索引,并使用上面的第一个查询。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31058621

复制
相关文章

相似问题

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