作者JoeHorn (狮子男)
看板Database
标题Re: [SQL ] MySQL UPDATE 的问题
时间Sat Nov 17 13:02:53 2007
※ 引述《starjou (周星星)》之铭言:
这是资料表架构设计跟逻辑上的问题。
: 有办法用一行 sql 叙述对一个资料表中的某一列多次更新它的值吗?
: 我的意思是这样:
: 表 A 是员工表,表 B 是报酬表
: 表 B 中,一个员工可能有多笔报酬
: 我可以用 SELECT 把表 A 跟表 B JOIN 起来,如果一个员工有多笔报酬,
: 就会有多笔资料,其中员工基本资料的部份是重覆的,报酬的部份则根据表 B
: 而不同
: 但是如果我把这个 JOIN 的 table reference 用在 UPDATE 的时候,
: 然後 SET 表 A 的本月报酬 = 表 A 的本月报酬 + 表 B.报酬
: 一个员工就只会更新一次,表 B 中只有第一笔资料处理到,其它则忽略,
: 也没有错误。
如果你要把 table B 的资料更新到 table A 。
如果不是进行每个月的结算,
这是否意味着你也必须把 table B 已经 merge 到 table A 的资料删除掉?
(不然 table B 那边的资料势必会被重复计算)
如果是进行每个月的结算,为何要把 table B 的资料 merge 到 table A ?
把 table A 跟 B JOIN 起来算 sum 产生一次输出不就好了?
: 变成只能先把资料用 SELECT 抓出来,再跑回圈一行一行跑 UPDATE 了。
: 请问有办法一行 SQL 做到吗?
一行 SQL 为的是什麽?
效能吗? 一行 SQL 不一定会比较快。
维护方便吗? 一行 SQL 并没有比较好维护吧?
爽度吗? 有必要吗?
--
Linux is for people who want to know why it works.
Mac is for people who don't want to know why it works.
DOS is for people who want to know why it does not work.
Windows is for people who don't want to know why it does not work.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.113.167.6