sql - 如何从一个“表”连接多个表在同一个自动生成的整数上?
问题描述
我想创建一个随机选择的交叉连接表,它会自动增加自己的 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 上选择它。
感谢您的帮助或想法如何解决这个问题!
解决方案
我想你想要:
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;
推荐阅读
- r - 如何在 r 中创建一个 bday 计数器以在 5 个相同的 bday 发生后退出 while 循环
- hibernate - 渴望获取 - 查找与 JPQL
- objective-c - 如何声明用户定义的 setter、getter 方法?
- git - 从私有存储库获取依赖项的正确方法
- python - 下面代码中的“ t[..., :1] ”是什么意思?
- android - Places AutoComplete Fragment 自动关闭
- c - 无法在链表上推头
- angular - 如何在没有 AngularFire 库的情况下从 Angular 拦截器发送 firebase IDToken?
- html - iOS上最后一帧的CSS动画问题
- javascript - 使用 Webpack 运行我的 React 应用程序的问题