将两个60,000个行表连接在一起并获得1000万行?

时间:2014-10-23 08:24:51

标签: mysql

有人能指出我做错了什么吗?我加入了两个表,每个表有60,000行,但是当我加入它们时,它需要永远,然后我最终得到一个有1000万行的表?

CREATE TABLE VAR_PEAK AS 
              SELECT a.*, b.PKN, b.PKS
              FROM VARPEAKX a, VARPEAKZ b 
              WHERE a.ID_NO = b.ID_NO

除了b.PKN,b.PKS,

列之外,表格是相同的

VARPEAKX

的数据是这样的
ID_NO    PKNW     PKNWS  
5454      1.5      2.5

而且VARPEAKZ的数据是这样的

ID_NO    PKN       PKS  
5454      1.5      2.5

2 个答案:

答案 0 :(得分:2)

如果你想到的话,你得到的结果是正常的:

  

SQL Joins子句用于组合两个或多个记录   数据库中的表。 JOIN是一种组合两个字段的方法   通过使用每个值共有的值来表。

可能是架构可以使用JOIN关键字更好地解释您的结果:
enter image description here

因此,根据共享3 600 000 000

的行数,您最多可以获得ID_NO(60 000 x 60 000)行

答案 1 :(得分:-2)

它永远服用的第一个原因是你正在使用跨产品。这是一项不同的昂贵操作。您应该使用内部或外部联接

更改

CREATE TABLE VAR_PEAK AS SELECT a.*, b.PKN, b.PKS FROM VARPEAKX a, VARPEAKZ b 
WHERE a.ID_NO = b.ID_NO

CREATE TABLE VAR_PEAK AS SELECT a.*, b.PKN, b.PKS FROM VARPEAKX a inner join VARPEAKZ b 
on a.ID_NO = b.ID_NO