在所有表中连接六个表,其中包含日期和市场列重复。

时间:2014-04-25 05:33:17

标签: mysql mysql-workbench

我的数据库中有六个表,每个表有45列,所有表中都有date和market列重复。其中有100万条记录。我的日期和市场价值不是唯一的,并且正在重复,所以我如何将这些表一起加入? 任何帮助? 例如:

table 1:
date market col1 col2
1 may India  san  det
1 may USA    lif   det
2 may India  lif   san 

table 2 : 
date market col3 col4
1 may  india san  go
1 may  USA   dif  dic
2 may  ind   det   san


RESULT AS 
date market col1 col2 col3 col4 
1 may India  san det  san  go
1 may USA    lif det  dif   dic
2 may India  lif san  det   san

我尝试使用以下查询连接两个表:

从cre选择*,dur,其中cre.period = dur.period和cre.market = dur.market;

但是,一旦我尝试创建一个表,它就无法正常工作。

我通过对所有列名进行硬编码来加入六个表,但我认为这不是正确的方法吗? 任何帮助?

1 个答案:

答案 0 :(得分:0)

您可以使用以下方式 -

select cre.*,dur.* from cre,dur where cre.period = dur.period and cre.market = dur.market; 

注意:即使您的要求对我来说也不是很清楚,但根据我的理解,您跳过cre.period = dur.period,然后您也可以根据您的数据获得相同的结果。

最好只保留所需的列,为此您可以按照以下步骤进行操作 -

步骤1:导出查询结果。

select * from table1 limit1;

步骤2:从标题行复制所有列并删除不需要的列。

此外,您的表结构似乎不太好,您应该通过父和子ID在另一个表中保留一个表的引用。