Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JDBC旋转非常大的表_Java_Mysql_Sql_Jdbc - Fatal编程技术网

Java 使用JDBC旋转非常大的表

Java 使用JDBC旋转非常大的表,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我想从另外两个表创建一个新表。问题是我有太多的专栏,这使一切崩溃 我拥有的第一个表是用户和对象之间的“连接” Table User | id | user_id | o54879 | o54880 | o87984 | ... -------------------------------------------------------- | 1 | 25488 | 0 | 1 | 0 | ... ----------------

我想从另外两个表创建一个新表。问题是我有太多的专栏,这使一切崩溃

我拥有的第一个表是用户和对象之间的“连接”

Table User

|  id  | user_id  | o54879  |  o54880  | o87984  | ...
--------------------------------------------------------
|  1   |  25488   |   0     |     1    |    0    | ...
--------------------------------------------------------
|  2   |  35487   |   0     |     1    |    1    | ...
--------------------------------------------------------
第二个表将每个对象指定给一个类别:

Table Cat

|  id  |  object_id  | category |
---------------------------------
|  1   |   o54879    |    1     |
---------------------------------
|  2   |   o54880    |    2     |
---------------------------------
|  3   |   o56457    |    2     |
---------------------------------
|  4   |   o59782    |    7     |
---------------------------------
我想要的是像这样的第三张桌子

Table UserGroupedByCat

|  id  | user_id  |  c1  |  c2  |  c3   | ...
---------------------------------------------
|  1   |  25488   |  0.4 |  0.1 |  0.7  | ...
---------------------------------------------
|  2   |  35487   | 0.01 | 0.75 |  0.2  | ...
---------------------------------------------
c1,c2,c3。。。应该是用户对每个类别的平均值

主要的问题是,我的数据库中有500个对象,当我尝试构建这样的sql查询时,会使所有对象崩溃:

INSERT INTO UserGroupedByCat (user_id, C1, C2, C3, C4, C5, C6, c7) 
   SELECT user_id, 
      ((o34508629+o52965151+o52630004+o34518676+...)/<sum of all objects>),      
      ((o62846406+o50349529+...)/<sum of all objects>), ...
   FROM `User`;
插入UserGroupedByCat(用户id、C1、C2、C3、C4、C5、C6、c7)
选择用户id,
((o34508629+o52965151+o52630004+o34518676+…)/),
((o62846406+o50349529+…)/)。。。
来自“用户”;

有没有更好(更快)的方法进行这样的查询?我会用3列重建第一个表(您也可以有一个数字ID,但我发现您无论如何都不使用它):


这将使您的系统更具可扩展性,并消除您所谈论的那些问题

您所说的“使一切崩溃”是什么意思?您是否收到某种错误消息?你到底想实现什么?我可以等两个小时,但计算机没有响应。我可以等两个小时,但计算机没有响应。你是否至少添加了日志消息(可能使用记录器或幼稚的
系统.out.println
)以确保你的应用程序根本没有工作?是的,我添加了。我也在一个较小的数据库上尝试了我的代码,它可以工作。你能发布你的整个SQL查询吗?目前,它看起来像是对每个用户的每个值求和,这可能不是您想要的。
USER_ID CATEGORY_ID SCORE

25488   o54879  0
25488   o54880  1
25488   o87984  0
...
35487   o54879  0
35487   o54880  1
35487   o87984  1
...