我想将两个表组合成一个新表,但条件是两个不同的列匹配。我需要生成一个CSV文件,其中包含来自两个不同表的组合数据行。下面更详细地解释
有两张桌子。一个称为“用户”,其中包含用户信息,另一个称为“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
如果tabled中名为“user”的“id”列与“project_details”中名为“userid”的列匹配,则该命令会创建一个新表并用两个表填充它。
这可能与MySQL有关吗?如果是这样的命令会做什么?
也许没有必要创建一个新表?阻力最小的路径总是最好的。
我无法提前感谢你对这个问题的理解。
答案 0 :(得分: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
恕我直言,创建一个额外的表来实现目标是没有意义的