我关注数据库:
id name prime product
1 x 2 2
2 z 3 6
3 y 17 102
4 d 5 30
5 a 7 210
6 b 11 330
7 c 13 390
Prime和产品用于确定祖先。现在我需要找到C的所有祖先,它们会像这样工作:
c.product / c.prime -> 390 / 13 = 30 --> ancestor D's product
d.product / d.prime -> 30 / 5 = 6 --> ancestor Z's product
z.product / z.prime -> 6 / 3 = 2 --> ancestor X's product
no more ancestors
现在我的问题是如何在一个简单的MySQL查询中获得C
及其所有祖先的结果。这是所需的输出:
id name prime product
1 x 2 2
2 z 3 6
4 d 5 30
7 c 13 390
任何人都可以给我一个提示吗?
我目前的尝试是:
SELECT *, (product DIV prime) AS ancestor FROM temp.test_tree WHERE product = ancestor;
但这显然不起作用。
答案 0 :(得分:1)
SELECT * FROM test_tree WHERE product IN (SELECT (product DIV prime) FROM test_tree ));