【问题标题】:mySQL joining multiple tables togethermySQL 将多个表连接在一起
【发布时间】:2012-11-16 01:20:45
【问题描述】:

我有大约 10 个表,所有表都有不同数量的列,但都包含“client_id”列,这是将每个表中的所有记录链接在一起的关键。

我想抓取所有表中的所有列。

在 client_id 上将所有 10 个左右的表连接在一起的最佳方法是什么?

想要这样做的原因是因为我想将所有表导出到 1 个单个 CSV 文件中。

【问题讨论】:

    标签: mysql join export-to-csv


    【解决方案1】:

    从包含所有客户端 ID 的表开始,并使用 USING 关键字左连接其余表:

     SELECT *
     FROM table1
     LEFT JOIN table2 USING (client_id)
     LEFT JOIN table3 USING (client_id)
     LEFT JOIN table4 USING (client_id)
     ...
    

    【讨论】:

    • 谢谢,它可以工作,但我似乎得到了重复的值?我加入的表格越多,重复的数量似乎也在增加。我做错了吗?
    • @user1859127:我猜你做错的事情是假设获取所有数据并将其保存在单个 CSV 文件中是一个明智的想法。您可能应该为每个表使用一个 CSV 文件。
    • 这样做的原因是因为我有一个允许通过 csv 插入数据的第 3 方工具。所以一次导入 1 个 csv 文件是行不通的。
    【解决方案2】:
    select *
    from table1 t1,
    table2 t2,
    table3 t3...
    where t1.user_id=t2.user_id
    and t1.user_id=t3.user_id...
    

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多