大家好我有3张桌子:
Propossals:
id_propossal, date
Articles:
id_article, description
Data:
id, id_propossal, id_artigo, position
所以这里的问题是,我想创建一些能够自动计算文章在表数据上的位置的东西。
示例:
Propossals
-------------
1 04/06/2014
2 05/06/2014
Articles
-------------
1 article01
2 article02
Data
-------------
1(id) 1(id_propossal) 1(id_article) 1(position defined by user using INSERT)
2(id) 1(id_propossal) 2(id_article) 2(position|this number calculates automatically +1)
3(id) 1(id_propossal) 1(id_article) 3(position|this number calculates automatically +1)
如果我做另一个提议,
4(id) 2(id_propossal) 1(id_article) 1(position|goes back to 1 because is a new propossal)
像这样的东西,感谢所有的帮助。
答案 0 :(得分:0)
在数据表上发出请求,找到id_propossal等于你要插入的行的max + 1位置。
例如,如果要插入123 id_propossal
SELECT (COALESCE(MAX(number),0)+1) AS nextPosition FROM Data WHERE id_propossal=123
这将返回1.
(如果max返回null,则使用COALESCE)
另一种方法是保存Propossalstable上的最后一个位置。
但是,如果要从Data表中删除行,该怎么办?你将有未使用的职位。
答案 1 :(得分:0)
好的,已经修好了:
使用MAX()函数,从propossal中选择最高值并在其上添加+1,它解决了我的问题。
感谢您的帮助。