2017-04-12 13 views
0

我在SQL中有兩個相當大的表格,它們共享一列來執行關係分析。如何使用SQL中的關係字段合併兩個表格

我想從合併表中只抽取大約10,000個條目,所以我不必查詢整個數據庫。

我想盡可能通用,所以我們假設我們有一個表A,B,C和另一個表C,D,E。每個表都有大約300萬個條目。而我的輸出應該是一個只有10,000個條目的A,B,C,D,E表。

謝謝!

+1

使用基於RDBMS的'join'和('Top'或'limit') – LONG

+0

您正在使用哪些DBMS? Postgres的?甲骨文? DB2?火鳥? –

+0

MS SQL,Azure –

回答

0
Select 
    A, B, C, D, E 
from 
    table1 t1 
inner join 
    table2 t2 on t1.c = t2.c 
limit 3000000 
+1

你甚至不知道他正在使用哪個sql產品 – LONG

0

這裏是SQL Server

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 
0
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; 
0

選擇頂層10000 A,B,C,d,E from table1 t1 inner join 表t1 t2.c在t1.c = t2.c 由newid()訂購

通過上面的查詢我們將得到10k個隨機記錄。