源表有378列,目标表有38列,用于存储用户数据。让我们说User_ID = 10
在源表中有超过50列我的用户ID可以出现。
所以我需要一个脚本来搜索这66个列,并将我的用户ID出现在源表中的次数插入到目标表中,记住1行将被计为1,无论我有多少次用户ID出现在该行中。
目前我有以下脚本:
INSERT INTO target_table (matches)
SELECT *
FROM match_details
WHERE player_stats.player_id IN (col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11)
答案 0 :(得分:1)
您的架构需要一些工作。您的列不应该是列,它们应该在另一个表中。
但是,如果您有一个包含用户ID的表。
SQL:
INSERT INTO target_table (user_id, matches)
SELECT u.id AS user_id, count(*)
FROM users u
JOIN match_details m
ON u.id IN (d.col1, d.col2, d.col3, d.col4, d.col5...)
GROUP BY user_id