如何在SQL中使用关系字段合并两个表

如何在SQL中使用关系字段合并两个表,sql,Sql,我在一个SQL中有两个相当大的表,它们共享一列来进行关系分析 我只想从一个合并表中提取大约10000个条目,所以我不必查询整个数据库 我希望尽可能地通用,所以假设我们有一个表,其中包含字段A、B、C,另一个表包含字段C、D、E。每个表大约有300万个条目。我的输出应该是一个包含a、B、C、D、E的表,只有10000个条目 谢谢 下面是SQL Server中的一个答案 Select A, B, C, D, E from table1 t1 inner join t

我在一个SQL中有两个相当大的表,它们共享一列来进行关系分析

我只想从一个合并表中提取大约10000个条目,所以我不必查询整个数据库

我希望尽可能地通用,所以假设我们有一个表,其中包含字段A、B、C,另一个表包含字段C、D、E。每个表大约有300万个条目。我的输出应该是一个包含a、B、C、D、E的表,只有10000个条目


谢谢

下面是SQL Server中的一个答案

Select 
    A, B, C, D, E 
from 
    table1 t1 
inner join 
    table2 t2 on t1.c = t2.c 
limit 3000000
select top(10000) A, B, C, D, E 
into t3
from t1 join t2 on t1.pk = t2.fk
以下是MySQL中的一个答案

create table t3 as 
select A, B, C, D, E
from t1 inner join t2 on t1.pk = t2.fk
limit 10000
选择前10000名 A、 B,C,D,E 从…起 表1 t1 内连接 表2 t1.c上的t2=t2.c 纽伊德订购


通过以上查询,我们将获得10k个随机记录

根据您使用的RDBMS使用join和Top或limit?博士后?神谕DB2?Firebird?SQL女士,在Azure,您甚至不知道他使用的是哪种SQL产品
SELECT k.A,k.B,k.C,k.D,k.E
  FROM
        (
            SELECT t1.A,t1.B,t1.C,t2.D,t2.E,ROW_NUMBER() OVER ( ORDER BY t1.c ) AS rn
              FROM table1 t1
            INNER JOIN
                  table2 t2
                ON t1.c = t2.c
         ) k   
 WHERE k.rn <= 10000;