MySQL - 如何将两个不同表中的数据放入一张表中

标签 mysql

我有下表

ps_ext_mod     ps_customer    ps_order_detail
---------      -----------    ---------------
id             .....          ..... 
cust      <==  email          .....
prod                  <==     product_reference

我需要将 email 中的数据添加到 cust 中,并将 product_reference 中的数据添加到 prod 中。
id 自动递增。

希望它应该看起来像这样:

ps_ext_mod
-----------
id | cust   | product
---------------------
1  | a@a.com | prod1
2  | a@a.com | prod2
3  | b@b.com | prod1
4  | c@c.com | prod3

最佳答案

INSERT INTO ps_ext_mod (email, product) SELECT
   c.email, d.product
   FROM ps_customer c
   INNER JOIN ps_order_detail d ON (d.customer_id = c.id) 

您需要稍微调整连接标准以匹配您的数据库结构。
如果两个表不相关,则使用如下查询:

INSERT INTO ps_ext_mod (email, product) SELECT
   c.email, d.product
   FROM ps_customer c
   CROSS JOIN ps_order_detail

关于MySQL - 如何将两个不同表中的数据放入一张表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270398/

相关文章:

php - 关联数组键值对或Mysql别名效率更高

php - Symfony2 Doctrine 查询实体错误

mysql - 访问mysql中相关字段的最佳方法

php - 从 mysql 结果创建一个 id 数组

php - 将表的 id 调用到新表并将值插入到该新表中

mysql - 无法在mysql中创建存储过程

php - 执行我的 PHP 脚本时 Apache 崩溃了

php - 在 Laravel 中填充具有多对多关系的表

python - 名称错误 : global name 'MySQLdb' is not defined

mysql - 与 CRM 相比,MSReport 显示的到期日期晚了 1 天?