0

我想将两个表组合成一个新表,但前提是两个不同的列匹配。我需要生成一个 CSV 文件,其中包含来自两个不同表的组合数据行。下面更详细地解释

有两张桌子。一个称为“user”,其中包含用户信息,另一个称为“project_details”,其中包含项目详细信息。我想创建一个 csv 文件,该文件根据 user_id 的匹配将相邻的“用户”数据(附加到最右边)合并到记录 project_details 数据。换句话说,它的节目仅在存在 user_id 匹配时才合并记录。

Table Name = user  This table contains simple table information
id          name        
1           Bill            
2           Steve       
3           Joe 

Table Name = project_details
project_name        color       userid
House Project       blue        2

SQL 结果

Table Name = combined_info
project_name        color       name    userid
House Project       blue        Steve   2

如果表中名为“user”的“id”列与“project_details.xml”中名为“userid”的列匹配,该命令将创建一个新表并用两个表填充它。

这对 MySQL 可行吗?如果是这样,什么命令会做到这一点?

也许不需要创建一个新表?阻力最小的路径总是最好的。

对于您在这个问题上的友好逻辑,我不能提前感谢您。

4

1 回答 1

1

您的基本查询看起来像

SELECT p.project_name,
       p.color,
       u.name,
       p.userid
  FROM project p JOIN
       user u ON p.userid = u.id

SQLFiddle

现在,如果你想创建一个 CSV 文件,那么你可以使用INTO OUTFILE子句

SELECT p.project_name,
       p.color,
       u.name,
       p.userid
  INTO OUTFILE '/tmp/mydata.csv'
       FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
       LINES TERMINATED BY '\n'
   FROM project p JOIN
       user u ON p.userid = u.id

恕我直言,创建一个额外的表来实现你的目标是没有意义的

于 2013-04-26T17:25:24.230 回答