0

我们继承了一个表结构,如下所示:

---------------------------------------------
option_id        title    option_type_id(FK)
---------------------------------------------
 1             Option1             1
 2             Option2             1
 3             Option3             2
 4             Option4             2
 5             Option5             3

上表是系统中可用的一组“选项”。

---------------------------------------------
 map_id        item_id         option_id(FK)
---------------------------------------------
   1             16378             1
   2             16378             4
   3             87680             2
   4             87680             3
   5             87680             5

底部表格有一个指向顶部表格的外键链接,它映射出附加到每个项目的所有“选项”。

问题是我们理想情况下希望显示每个选项的数据集拆分,如下所示:

-----------------------------------------------
 item_id       option_type_1      option_type2
-----------------------------------------------
    87680         Option2            Option3

任何人都可以帮忙吗?我已经尝试过 INNER JOIN 和 LEFT OUTER JOIN,但似乎没有什么能完全涵盖所有的可能性。在这种特殊情况下,我们只关心结果集的 option_types 1 和 2。

4

1 回答 1

0

如果您只对选项 1 和选项 2 感兴趣,那么:

select item_id, o1.title, o2.title
from itemtable as IT
left join optiontable as O1 on it.option_id = o1.option_id and option_type_id = 1
left join optiontable as O2 on it.option_id = o1.option_id and option_type_id = 2
于 2013-07-24T16:05:13.460 回答