2014-12-03 106 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

相關問題