SELECT查询我有一个多表查询,看起来像:SQL - 优先过滤
SELECT tree.name, tree.type, branch.name, branch.type, leaf.name, leaf.type
FROM tree, branch, leaf
WHERE leaf.branch_id = branch.id
AND branch.tree_id = tree.id
ORDER by field(tree.type, 'Poplar', 'Birch', 'Hazelnut')
所以这给了我属于任何三种树条目的所有叶项。
现在,我真的只想返回属于一棵树的叶子条目,按照指定的顺序。
因此,如果有叶子条目属于白杨树,只显示这些。但是,如果没有Poplar Leaf条目,则只显示属于Birch树的叶条目。
可能有任何数量的叶条目。我只想要那些出现在我的优先级列表中的树。理想情况下只使用一个查询。
任何想法?在此先感谢....
请画表结构必不可少的虚拟数据和http://sqlfiddle.com – diEcho 2012-08-16 10:32:57