13 个解决方案
#1
用临时表吧呵呵
#2
mysql 不支持子查询哦。
分开写查询,用事务包起来
乱说的,不知行不行
分开写查询,用事务包起来
乱说的,不知行不行
#3
楼上的兄弟,用临时表性能应该很低下的,这样应该解决不了问题,在数据量很大的时候,这种方式可能还可以。
#4
cryingboy(哭泣男孩) ,事务可能不适合这种情况吧,所谓采用的事务是不是把子查询分解成几个查询,然后分别执行啊?如果是这样的话?那中间的数据怎么保存啊?比如,我在第一个查询的基础上咱进行查询,此时第一次查询的结果应该放在哪儿呢?
#5
如果是ORACLE
#6
如果是ORACLE
如cryingboy(哭泣男孩) 所说的,使用事务,使用ORACLE的临时表,可以的.
但MYSQL不知道有没有临时表的概念.
如cryingboy(哭泣男孩) 所说的,使用事务,使用ORACLE的临时表,可以的.
但MYSQL不知道有没有临时表的概念.
#7
可以考虑在程序中实现,如将子查询得到的内容保存在一个内存表中,再用循环语句按内存表中的关键字查询,不过比较麻烦.
#8
先把查询出来的值存入到一个链表当中,然后再进行二次查询.
#9
是不是可以先进行单表的查询 在程序中做一个共用的Class来实现通过各种不同的Key值来结合两个或多个记录集 来替代子查询?
#10
事务是不是把子查询分解成几个查询,然后分别执行啊?
不是这个哦。
事务是原子操作,就是要么做完,要不么一点都不做(做了也要退回去)
这里我建议用事务是考虑到你的子查询作为更新数据的来源,如果没有数据更新就不事务了。
就如下面的朋友说,先做个查询(子查询),再用java写个循环,把子查询的中的数据
一个一个读出来,构成新的查询(父查询,这个叫法有点问题哈),这样就实现了。
不是这个哦。
事务是原子操作,就是要么做完,要不么一点都不做(做了也要退回去)
这里我建议用事务是考虑到你的子查询作为更新数据的来源,如果没有数据更新就不事务了。
就如下面的朋友说,先做个查询(子查询),再用java写个循环,把子查询的中的数据
一个一个读出来,构成新的查询(父查询,这个叫法有点问题哈),这样就实现了。
#11
to:cryingboy(哭泣男孩),我也知道事务是针对数据更新的,因此觉得奇怪,这种情况应该不考虑事务的.
to: bigc2001(大C) ,mysql有临时表.
scfox(小胡),cryingboy(哭泣男孩)的采用循环的方式可行,但是肯定比较麻烦,不过一次写好了封装成组件以后用也不失为一种好的方法.
lzclongqing(飞翔的茄子) 的方法我觉得不太现实,用两个或者多个ResultSet来模拟数据表可能不是很容易办到.
caocheng8230(), 兄的二次查询怎么弄啊?能不能再说清楚点啊?是不是在对链表进行处理啊?其实本质也就是循环遍历链表,是么?
to: bigc2001(大C) ,mysql有临时表.
scfox(小胡),cryingboy(哭泣男孩)的采用循环的方式可行,但是肯定比较麻烦,不过一次写好了封装成组件以后用也不失为一种好的方法.
lzclongqing(飞翔的茄子) 的方法我觉得不太现实,用两个或者多个ResultSet来模拟数据表可能不是很容易办到.
caocheng8230(), 兄的二次查询怎么弄啊?能不能再说清楚点啊?是不是在对链表进行处理啊?其实本质也就是循环遍历链表,是么?
#12
目前为止,经过大家的帮助之后我认为有两种解决办法:
第一:如各位朋友所说,先执行一次查询,然后在程序中利用循环等方式处理,但是这样的话,如果嵌套比较多比如3层或者四层的话,那就特麻烦了,也许更本就不行.幸好一般嵌套的层数一般不会那么多,否则,可能就应该考虑是不是数据库设计出了问题.
第二个方法就是,采用临时表,集合批处理,这样就可以解决了,我认为这是目前来说我知道的应该是最好的方法.
当然这两种方法都要尽量优化sql语句,尽量提高sql的执行效率.
以上是我总结各位朋友的观点结合我自己的想法而的出的,有什么不对请同行朋友指点指点啊,另外如果有更好的方法的话,请告诉我啊,感激不尽!
第一:如各位朋友所说,先执行一次查询,然后在程序中利用循环等方式处理,但是这样的话,如果嵌套比较多比如3层或者四层的话,那就特麻烦了,也许更本就不行.幸好一般嵌套的层数一般不会那么多,否则,可能就应该考虑是不是数据库设计出了问题.
第二个方法就是,采用临时表,集合批处理,这样就可以解决了,我认为这是目前来说我知道的应该是最好的方法.
当然这两种方法都要尽量优化sql语句,尽量提高sql的执行效率.
以上是我总结各位朋友的观点结合我自己的想法而的出的,有什么不对请同行朋友指点指点啊,另外如果有更好的方法的话,请告诉我啊,感激不尽!
#13
没有其他方法了么?哪位大虾还有高见啊?没有的话明天我就结贴了啊!
#1
用临时表吧呵呵
#2
mysql 不支持子查询哦。
分开写查询,用事务包起来
乱说的,不知行不行
分开写查询,用事务包起来
乱说的,不知行不行
#3
楼上的兄弟,用临时表性能应该很低下的,这样应该解决不了问题,在数据量很大的时候,这种方式可能还可以。
#4
cryingboy(哭泣男孩) ,事务可能不适合这种情况吧,所谓采用的事务是不是把子查询分解成几个查询,然后分别执行啊?如果是这样的话?那中间的数据怎么保存啊?比如,我在第一个查询的基础上咱进行查询,此时第一次查询的结果应该放在哪儿呢?
#5
如果是ORACLE
#6
如果是ORACLE
如cryingboy(哭泣男孩) 所说的,使用事务,使用ORACLE的临时表,可以的.
但MYSQL不知道有没有临时表的概念.
如cryingboy(哭泣男孩) 所说的,使用事务,使用ORACLE的临时表,可以的.
但MYSQL不知道有没有临时表的概念.
#7
可以考虑在程序中实现,如将子查询得到的内容保存在一个内存表中,再用循环语句按内存表中的关键字查询,不过比较麻烦.
#8
先把查询出来的值存入到一个链表当中,然后再进行二次查询.
#9
是不是可以先进行单表的查询 在程序中做一个共用的Class来实现通过各种不同的Key值来结合两个或多个记录集 来替代子查询?
#10
事务是不是把子查询分解成几个查询,然后分别执行啊?
不是这个哦。
事务是原子操作,就是要么做完,要不么一点都不做(做了也要退回去)
这里我建议用事务是考虑到你的子查询作为更新数据的来源,如果没有数据更新就不事务了。
就如下面的朋友说,先做个查询(子查询),再用java写个循环,把子查询的中的数据
一个一个读出来,构成新的查询(父查询,这个叫法有点问题哈),这样就实现了。
不是这个哦。
事务是原子操作,就是要么做完,要不么一点都不做(做了也要退回去)
这里我建议用事务是考虑到你的子查询作为更新数据的来源,如果没有数据更新就不事务了。
就如下面的朋友说,先做个查询(子查询),再用java写个循环,把子查询的中的数据
一个一个读出来,构成新的查询(父查询,这个叫法有点问题哈),这样就实现了。
#11
to:cryingboy(哭泣男孩),我也知道事务是针对数据更新的,因此觉得奇怪,这种情况应该不考虑事务的.
to: bigc2001(大C) ,mysql有临时表.
scfox(小胡),cryingboy(哭泣男孩)的采用循环的方式可行,但是肯定比较麻烦,不过一次写好了封装成组件以后用也不失为一种好的方法.
lzclongqing(飞翔的茄子) 的方法我觉得不太现实,用两个或者多个ResultSet来模拟数据表可能不是很容易办到.
caocheng8230(), 兄的二次查询怎么弄啊?能不能再说清楚点啊?是不是在对链表进行处理啊?其实本质也就是循环遍历链表,是么?
to: bigc2001(大C) ,mysql有临时表.
scfox(小胡),cryingboy(哭泣男孩)的采用循环的方式可行,但是肯定比较麻烦,不过一次写好了封装成组件以后用也不失为一种好的方法.
lzclongqing(飞翔的茄子) 的方法我觉得不太现实,用两个或者多个ResultSet来模拟数据表可能不是很容易办到.
caocheng8230(), 兄的二次查询怎么弄啊?能不能再说清楚点啊?是不是在对链表进行处理啊?其实本质也就是循环遍历链表,是么?
#12
目前为止,经过大家的帮助之后我认为有两种解决办法:
第一:如各位朋友所说,先执行一次查询,然后在程序中利用循环等方式处理,但是这样的话,如果嵌套比较多比如3层或者四层的话,那就特麻烦了,也许更本就不行.幸好一般嵌套的层数一般不会那么多,否则,可能就应该考虑是不是数据库设计出了问题.
第二个方法就是,采用临时表,集合批处理,这样就可以解决了,我认为这是目前来说我知道的应该是最好的方法.
当然这两种方法都要尽量优化sql语句,尽量提高sql的执行效率.
以上是我总结各位朋友的观点结合我自己的想法而的出的,有什么不对请同行朋友指点指点啊,另外如果有更好的方法的话,请告诉我啊,感激不尽!
第一:如各位朋友所说,先执行一次查询,然后在程序中利用循环等方式处理,但是这样的话,如果嵌套比较多比如3层或者四层的话,那就特麻烦了,也许更本就不行.幸好一般嵌套的层数一般不会那么多,否则,可能就应该考虑是不是数据库设计出了问题.
第二个方法就是,采用临时表,集合批处理,这样就可以解决了,我认为这是目前来说我知道的应该是最好的方法.
当然这两种方法都要尽量优化sql语句,尽量提高sql的执行效率.
以上是我总结各位朋友的观点结合我自己的想法而的出的,有什么不对请同行朋友指点指点啊,另外如果有更好的方法的话,请告诉我啊,感激不尽!
#13
没有其他方法了么?哪位大虾还有高见啊?没有的话明天我就结贴了啊!