请教一个 sql 语句

2017-05-26 11:19:54 +08:00
 omg21

A 表是主表,运行时如果有问题就把 A 表出问题的记录 ID 保存到 log 表中,等到全都运行完了后,再从 log 表中取出出问题的 ID 重新执行。 就是这最后一步的 sql 语句不会写,从 log 表中取出 ID 号,然后再从 A 表中取出相应的 ID 执行。

2351 次点击
所在节点    Python
10 条回复
liprais
2017-05-26 11:33:35 +08:00
select id from A where id in ( select id from log )
geelaw
2017-05-26 11:34:27 +08:00
或者你可以 join
littleylv
2017-05-26 11:42:53 +08:00
为什么这么麻烦要 log 表。
A 表多一个字段记录运行状态,如果运行有问题,标记一下这个字段。
等到全都运行完了后,取 A 表中运行状态字段是你标记的值的记录就行了。
fxxkgw
2017-05-26 12:31:25 +08:00
select a.id from log l left join A a on l.A_id=a.id where l.id=xxxx
omg21
2017-05-26 13:31:13 +08:00
@littleylv 嗯,之前就是这么想的,后来要求保存错误原因,才单设一个 log 表
omg21
2017-05-26 13:31:43 +08:00
@liprais
@fxxkgw
OK,搞定了,谢谢
slixurd
2017-05-26 13:40:05 +08:00
不要用 IN,不要用 IN,不要用 IN....
尤其是带子查询的 IN,DEPENDENT SUBQUERY 的性能非常有问题
4 楼的 JOIN 更好一点....
Ironsongming
2017-05-26 14:43:49 +08:00
@littleylv bingo
Ironsongming
2017-05-26 14:46:10 +08:00
@omg21 你这是数据类的系统么?如果不是,还不如直接在代码层面做错误日志收集呢。如果是,为什么不对全局做操作日志呢?
robinshi2010
2017-05-26 17:01:02 +08:00
感觉 3 楼说的有道理啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363952

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX