我们有用于分类帐户的按位类型表。每个帐户可以有子“类型”。
Table: types
id | title | int | types | family
1 foo 1 7 ?
2 bar 2 1 ?
3 baz 4 3 ?
我们使用该表已经很长时间了,它的工作原理很好,因为计数永远不会超过20。(为清楚起见,省略了一个帐户ID列。)
使用'int'和'types'获取ID列表很简单。但是我将如何建立一个类型家庭? (在“类型”列中引用了每种类型。)在上面的示例中,记录2族为(int 1+ int 4)= 5,因为在记录1和3中引用了它(因为7和3都具有2位)。
我可能需要澄清
答案 0 :(得分:0)
我认为此查询将满足您的要求。它对每一行的int
值求和,其中types
的值包括目标行的int
的值:
SELECT t1.*, SUM(t2.int) AS family
FROM types t1
JOIN types t2 ON t2.types & t1.int != 0
GROUP BY t1.id, t1.title, t1.int, t1.types
输出:
id title int types family
1 foo 1 7 7
2 bar 2 1 5
3 baz 4 3 1