Sql 使用其他表中的数据充实表

Sql 使用其他表中的数据充实表,sql,join,teradata,Sql,Join,Teradata,目前我有两个表:一个是客户数据客户表,另一个是礼品卡信息礼品卡表 GIFTCARD_表由100行组成,有2列:卡号和Pin码 现在我需要用GIFTCARD_表中的2列来充实CLIENT_表35行,因此每个客户端都需要一个卡号及其对应的pin_代码,哪一个不使用相同的卡号和pin_代码两次并不重要 由于这些表没有我可以使用的任何键,我不知道如何才能做到这一点 有什么建议我可以解决这个问题吗 善意的问候示意图I在Teradata语法中可能不正确: 使现代化 -此表副本将被更新 客户需求表c1 -此C

目前我有两个表:一个是客户数据客户表,另一个是礼品卡信息礼品卡表

GIFTCARD_表由100行组成,有2列:卡号和Pin码

现在我需要用GIFTCARD_表中的2列来充实CLIENT_表35行,因此每个客户端都需要一个卡号及其对应的pin_代码,哪一个不使用相同的卡号和pin_代码两次并不重要

由于这些表没有我可以使用的任何键,我不知道如何才能做到这一点

有什么建议我可以解决这个问题吗


善意的问候

示意图I在Teradata语法中可能不正确:

使现代化 -此表副本将被更新 客户需求表c1 -此CTE枚举客户端,join枚举第一个副本中的行 按id rn在订单上加入选择id、行号 来自c1.id=c2.id上的客户_表c2 -此CTE枚举卡,join通过“rn”编号将卡一对一分配给客户端 按卡号rn在订单上加入SELECT*,行号 根据c2.rn上的GIFTCARD_表g=g.rn 设置c1.卡号=g.卡号, c1.销码=g.销码;
如果你想随机分配卡片,你需要:

select *
from
 (  -- random row_numbers
    select dt.*, 
       row_number() over (order by rnd) as rn
    from
     ( -- 35 random clients
       select t.*, random(1,1000000000) as rnd
       from CLIENT_TABLE as t
       sample randomized allocation 35
     ) as dt
 ) as client
join
 (  -- random row_numbers
    select dt.*, 
       row_number() over (order by rnd) as rn
    from
     ( 
       select t.*, random(1,1000000000) as rnd
       from GIFTCARD_TABLE as t
     ) as dt
 ) as card
on client.rn = card.rn

RANDOM不能直接用于行编号。

因为这些表没有我可以使用的键,我不知道如何才能做到这一点。这是否意味着这些数据现在不相关,没有一张卡属于任何确定的客户?您需要从100到35个客户机随机分配35张卡?Teradata或MySQL?选择一个DBMS,MySQL或Teradata,然后删除不相关的标记。并指定精确的数据库服务器版本。@Akina是的,它们是不相关的,需要随机分配给35个客户端。谢谢您的回答!