各位在线的朋友,求个思路?

1.有3张表,就叫做a表、b表、c表吧(3张表的数据都很大上万条数据)。

 

2.首先要查询a表的所有数据,然后根据a表的条件(有4个)去查询b表的ID,然后根据b表的ID去更新c表的数据。

 

3.写个我现在做的简单步骤:

查询出a表的数据(select * from a),然后循环:

for(int i=0;i<a表的数据;i++)

{

//根据a表的条件去查询表的ID

select id from b

where

  b.xx1 = a表.xx1

  and b.xx2 = a表.xx2

  and b.xx3 = a表.xx3

// 根据查询出来的ID去更新c表

update c 

  set xx1 = a.xx5

  ,xx2 = a.xx6

  ,xx3 = a.xx7

where

  xxid = b.id

  }

 

我现在的问题就是觉得这样很慢,影响效率,如果数据有10万条,就要查询10万次,然后在更新10万次。

各位在线的朋友们,有没有什么好的思路,在线求解答,谢谢。


繁星淼淼
浏览 473回答 2
2回答

幕布斯6054654

可以把你这些逻辑都写成一个存储过程。

精慕HU

如果直接写一个SQL取得那四个字段 ,然后再更新不是更好吗?
打开App,查看更多内容
随时随地看视频慕课网APP