我正在查看某人在一个表中提交的内容与数据库中的另一个表之间是否匹配。 我不知道如何设置它。什么即时尝试是匹配2 sql列如果=然后更新一个不同的列1
IF tableA column A = tableB column B then table A column C = Column C + 1.
我试过更新的方法,但似乎不适合我。任何帮助都会很棒。谢谢。
我正在查看某人在一个表中提交的内容与数据库中的另一个表之间是否匹配。 我不知道如何设置它。什么即时尝试是匹配2 sql列如果=然后更新一个不同的列1
IF tableA column A = tableB column B then table A column C = Column C + 1.
我试过更新的方法,但似乎不适合我。任何帮助都会很棒。谢谢。
一般会是这样:
UPDATE TABLE_A a JOIN TABLE_B b
ON a.join_col = b.join_col AND a.column_a = b.column_b
SET a.column_c = a.column_c + 1
的join_col
价值可能user_ID的,所以你只在TABLE_A
有关该更新的行同一用户在TABLE_B
中具有相同的值。
我想你可以在mysql中做到这一点:
UPDATE TableA a, TableB b
SET a.ColumnC = ColumnC + 1
WHERE a.ColumnA = b.ColumnB;
这会更新TableA中的所有行,其中a.ColumnA = b.ColumnB - 即使它们来自不同的用户。在这种情况下,如果*任何*用户的ColumnB等于该用户的ColumnA,它将更新TableA - 我相信OP只想为该特定用户更新ColumnC。 – 2013-03-04 17:04:52
这段代码是为了显示语法而呈现的伪代码的转换,@Ricky可以根据需要更改它。 – Bulat 2013-03-04 17:07:39
,如果这是你想要
update tableA set colA=(select (case when b.colB=colA then colC+1 else colC end) from tableB b)
不,这不会工作的原因很多。即使它没有错误地执行,它也会更新错误的列。 – andr 2013-03-04 17:24:00
RTLM什么? http://dev.mysql.com/doc/refman/5.0/en/update.html – 2013-03-04 16:58:26
左连接?内部联接?这是否是psuedocode?你的查询是什么?结果如何?预期成绩? – Hituptony 2013-03-04 16:59:13