green777 2011-05-24 15:26 采纳率: 0%
浏览 811
已采纳

mysql如何多表联合按条件导出数据?

例如,我想导出table1中abc_id=1的记录以及与它联结的table2表中的相应数据,我用mysqldump的where参数似乎不可以联结表:
mysqldump -u root abc table1 table2 --where="abc_id=1 and table1_id in (select id from table1 where abc_id=1)" > example.sql
mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM table1 WHERE abc_id=1 and table1_id in (select id from table1 where abc_id=1)': Unknown column 'table1_id' in 'IN/ALL/ANY subquery'

应该怎样导出这两个表中的数据呢?

  • 写回答

3条回答 默认 最新

  • horace_lee 2011-05-27 23:15
    关注

    -w 选项确实不支持join

    这是个定位问题,mysqldump是致力于,快速备份还原数据库的。如果你注意一下mysqldump导出的mysql文件,你会发现,里面有create insert,实际不是导出数据,而是,一系列语句直接运行就能还原数据,或者还原表结构。

    这就解释了为什么设计mysqldump的时候为什么没有-w 支持join的选项,因为,备份完了,运行还原的时候还原什么呢?

    也就是说,如果,楼主只是想纯导出数据,而不是想用来备份还原的话,直接select就行了,而要想备份还原的话,直接两个表备份就行

    也是个人理解哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)