用于将源表中的数据插入目标表

时间:2015-12-13 09:02:17

标签: php mysql

源表有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)

1 个答案:

答案 0 :(得分:1)

  1. 您的架构需要一些工作。您的列不应该是列,它们应该在另一个表中。

  2. 但是,如果您有一个包含用户ID的表。

  3. 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