2014-12-03 110 views
0

我有两个表格A和B.表格A包含字段'数字'。表B包含'number_start'和'number_end'。 我想合并这两个表,使最终表包含来自两个表中的数字在number_start和number_end之间的细节。在sql中合并两个没有公共列的表格

我想在redshift/sql中实现这一点。让我知道是否有人有一些线索。

+0

这两个表格如何相互关联? – Matt 2014-12-03 09:31:40

+0

这两张表的基本来源不同,我想将它们映射到一张表中。在表A中给出了其细节数字,而在其他表格中给出了其范围。 – rupali 2014-12-03 09:39:35

+0

你的意思是''之间'作为number_start Dennis 2014-12-03 09:39:49

回答

2

执行此连接操作

Select a.Number,b.EndNumber,b.StartNumber 
from A a join B b 
on a.Number >= b.StartNumber and a.Number <= b.EndNumber 
+0

谢谢这个查询是有道理的!我会按照我的需要更新一点。谢谢 – rupali 2014-12-03 09:56:42

1

使用连接语句。尝试这个。

select t1.numbers from t1,t2 where t1.numbers>t2.min and t1.numbers<t2.max; 
+0

table1的数量必须在table2的两个数字之间,正常的join不会解决这个问题。 – Dennis 2014-12-03 09:37:47

+0

你好现在只有我明白用例我尝试它。 – RDY 2014-12-03 09:39:24

+0

雅我更新了我的答案。 – RDY 2014-12-03 10:12:30

0

如果这两个表不与对方有关的,那么你可以在此查询使用此查询

select CONVERT(varchar, A.number_start) + CONVERT(varchar,B.number) + Convert(varchar,A.number_end)  from A cross join B 

如果此表有外键,那么你可以使用内部连接

+0

这不会工作,因为作者的评论:'@丹尼斯:我的意思是作为number_start <数字 Dennis 2014-12-03 09:45:06

1
SELECT t1.`number`,t2.`end_number`, t2.`start_number` FROM table1 t1, `table2` t2 
WHERE `number` >= start_number 
AND number <=end_number 

你想要这样的事吗? Please check this

+1

1)SQLfiddle是非常有用的,但你应该在SO中发布你的代码,而不仅仅是链接。 2)你为什么使用嵌套的SELECT? – 2014-12-03 09:52:18

+0

@LS_dev谢谢你的建议,我忘了删除上面的选择,它会在一个选择正常工作 – 2014-12-03 09:56:14

相关问题