在没有RECURSIVE的SQLite上,从具有列ID,IDofParent和Flavor的表中,如何使用max。效率可以归还父母或祖父母的味道='柠檬'?
答案 0 :(得分:0)
这可以通过查找带有子查询的(大)父母,并将所有内容组合成compound query来完成:
-- SELECT * FROM ATable WHERE Flavour = 'Lemon'
-- UNION ALL
SELECT * FROM ATable WHERE IDofParent IN (
SELECT ID FROM ATable WHERE Flavour = 'Lemon')
UNION ALL
SELECT * FROM ATable WHERE IDofParent IN (
SELECT ID FROM ATable WHERE IDofParent IN (
SELECT ID FROM ATable WHERE Flavour = 'Lemon'))
(除非您为每个步骤单独执行查询,并且将最后一步中的ID插入到下一步中,否则无法避免重复查询。)