使用多个外键查询同一个表

时间:2014-03-08 19:33:43

标签: mysql sql

我需要帮助MySQL查询,这将显着优化我的Rails 3应用程序。

我有2个主要涉及的表:细分和组织

表格定义是:

  • 名称
  • 的organization_ID
  • override_id
  • default_id
  • PLAYLIST_ID
  • 位置

组织

  • 的祖先
  • ancestry_depth

将片段视为播放列表中的曲目。可以覆盖轨道,因此覆盖_id。轨道也可以具有默认值,因此是default_id。如果轨道同时具有覆盖或默认,则覆盖应优先。如果这还不够棘手,还有另一个问题 - 覆盖必须考虑其相关组织的层次结构。


Sample Data & Expected Results


以下是我逐行对预期结果集的解释:

第1行 - 使用ID#9覆盖#1,因为它覆盖了段#1(覆盖#1 w / ID#5),但与ID 9关联的组织的祖先深度(2)低于与段ID#5关联的组织的祖先深度,即3。

第2行 - 使用ID#6覆盖#2,因为它覆盖了段#2,并且没有另一个覆盖可用于具有较低祖先深度的同一组织。

第3行 - 使用默认#2,因为段#3没有可用的覆盖。

第4行 - 使用了段#4,因为没有覆盖或默认可用。


我在查询中做了很多尝试,这些尝试会给我这些结果,而我却无法接近。我的最新尝试使用了一个UNION,它给了我有趣的结果,因为我可以看到正确的段列表和附加到底部的正确覆盖,但是,它远非我上面描述的。

我非常感谢任何帮助和/或指导。

谢谢!

路易斯

0 个答案:

没有答案