如何从一个“表”中在同一个自动生成的整数上连接多个表?

问题描述 投票:3回答:1

我想创建一个随机选择的交叉连接表,它自动增加自己的id并加入它。让我们说我的桌子看起来像这样。

Firstname, Lastname 

Hans      | Müller
Joachim   | Bugert

Address
City, Street, StreetNumber
Hamburg | Wandsbeckerstr. | 2
Berlin  | Konradstraße    | 13

现在我想用自动生成的ID连接表,它们应该是随机选择的。决赛桌应该是这样的

ID,Firstname,Lastname, City, Street, StreetNumber
1 |Hans|Bugert|Berlin|Wandsbeckerstr|2
2|Joachim|Müller|Hamburg|Konradstraße | 13

我已尝试或使用过的内容:

在这里,我自动生成我想要加入表格的ID

select GENERATED_PERIOD_START as ID FROM SERIES_GENERATE_INTEGER(1,1,10)

问题是交叉连接和内部连接对我不起作用,因为它总是连接所有内容或者不加入相同的ID。

SELECT Person."Firstname", Person."Lastname", Address."City",Address."Street", Address."StreetNumber"

FROM 
(   select GENERATED_PERIOD_START as ID FROM SERIES_GENERATE_INTEGER(1,1,10)

) autoGenID
inner JOIN
(select "Firstname" ,"Lastname" FROM Person ORDER BY RAND()) Person

inner JOIN 
(select "City", "Street", "StreetNumber", FROM Address  ORDER BY RAND()) Address

JOIN ON autoGenID."ID"=?????

这是我的问题我不能只选择随机数据并在我自动生成的ID上选择。

感谢您的帮助或想法如何解决这个问题!

sql join random sap hana
1个回答
4
投票

我想你想要:

SELECT p."Firstname", p."Lastname", a."City", a."Street", a."StreetNumber"
FROM (SELECT p.*,
             ROW_NUMBER() OVER (ORDER BY RAND()) as seqnum
      FROM Person p
     ) p JOIN
     (SELECT a.*,
             ROW_NUMBER() OVER (ORDER BY RAND()) as seqnum
      FROM Address a
     ) a
     ON p.seqnum = a.seqnum;
© www.soinside.com 2019 - 2024. All rights reserved.