从MySQL数据库相关表输出数据

时间:2015-05-25 06:09:00

标签: mysql

有限的MySQL知识。我需要从数据库中的多个表中提取相关数据到csv /电子表格。

三张桌子:

  • 客户,
  • 订单,
  • 的OrderItems

OrderItem通过unqiue ID与订单相关。每个订单都可以有一个或多个OrderItems。

订单通过唯一ID与客户相关。每个客户可以再增加一个订单。

我已根据以下建议尝试此查询 - 谢谢:

SELECT * FROM user u
JOIN order o
ON u.id = o.userid
JOIN orderarticles a
ON o.id = a.orderid;

然而,收到错误:

 Duplicate column name 'OXID'

我无法更改字段名称/结构。我该如何解决这个问题?

我想要一个包含所有客户的电子表格及其相关的购买历史记录。时间或付款并不像简单地知道每个客户购买的东西那么重要。

期待一些专业提示!

2 个答案:

答案 0 :(得分:0)

假设您有3个表:customer_table,order_table,order_items_table。 以下必须是您表格的基本结构:

  1. customer_table应该有一个主键说customer_id
  2. order_table有一个主键说order_id,需要有一个 外键 - > customer_id引用customer_key
  3. order_items_table有一个主键说item_id和一个外键 key - > order_id引用order_table。
  4. 拥有这种结构后,您可以参考Mohit发布的链接。

答案 1 :(得分:0)

执行将指定所需字段的连接查询,并指明将保存数据的输出文件 - 例如:

SELECT [Fields] FROM `customers` `c` 
JOIN `orders` `o`
ON `c`.`customer_id`=`o`.`customer_id`
JOIN `order_items` `oi`
ON `o`.`order_id`=`oi`.`order_id`
INTO OUTFILE "C:\tmp\file.csv"
FIELDS ENCLOSED BY '"'
TERMINATED BY ','
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

然后导航到" C:\ tmp" 并使用excel打开" file.csv"