如何将大表与两个表分开并组合子表

时间:2015-06-03 07:35:59

标签: mysql sql sql-server

对于快速搜索表,我需要将一个大表分成两个表 示例表:

+--------+--------+-------+------+
| source | target | count | prob |
+--------+--------+-------+------+
| test1  | test2  |     2 |    1 |
| cat    | dog    |     3 |   1.5|
| dog    | cat    |     1 |   0.5|
+--------+--------+-------+------+

使用以下代码

INSERT INTO Table2 (source,target,count,prob)
SELECT source,target,count,prob FROM Table1 WHERE count <2;

然后删除原件

DELETE FROM Table1 WHERE count<2;

计数将在分离Table1中的表后进行分组,并且新的相同元素将在分离后增加。

例如:

source = 'dog' and target = 'cat' and count = 1将移至Table2,而Table1仍将分组,例如添加计数或将添加新行source = 'dog' target ='cat'count = 3

我如何组合Table1和Table2(分离后Table2不会改变)

1 个答案:

答案 0 :(得分:3)

您可以将结果与UNION

结合使用
SELECT source, target, count, prob FROM tbl1

UNION

SELECT source, target, count, prob FROM tbl2

请注意,有很多更好的方法可以在大型表上获得更好的性能