mysql - select * from tableA,tableB - 问题

mysql - select * from tableA,tableB - 问题

问题描述:

这是一个有效的mysql语句吗?mysql - select * from tableA,tableB - 问题

select * from TableA , TableB ; 

如果没有什么是选择这两个表的正确MySQL的声明。

为什么我认为有一些错误,这是我写的一个MySQL声明

select * from TableA, TableB INTO OUTFILE 'c:/test.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' ; 

,并去了死循环。当我终止。 csv文件的大小已经成长为GB。

+1

是表A和表B有关系吗? – 2009-12-14 12:56:34

如果只希望采取所有的表A的记录,然后所有的表B,从按顺序记载,union关键字可能会感兴趣。

SELECT * FROM TableA 
UNION 
SELECT * FROM TableB 
    INTO OUTFILE 'c:/test.csv' 
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' ; 

这不是技术上的死循环 - 你创建的两个表格的笛卡尔积 - 这意味着,在表中的每一行,在表B中的每一行将被复制。这几乎从来不是你想要做的 - 这意味着你的输出将是AXB行,其中A是表A中的行数,B是表B中的行数。

你或者想要通过选择两条语句并附加到文件两次完成此任务,将两个表联合在一起,或将它们联接在一起。 Google for SQL Union和INNER JOIN了解更多信息。

查询是要产生一个交叉连接,所以行数将表A的数量*表B.

的计数如果每个这些表的话,你的CSV有100,000行例如,最终会有10,000,000,000行。