多对多关系显示其他匹配条件

时间:2012-10-16 21:58:44

标签: sql

我的类别和列表分别存储在 ListingCategory 表和 Listing 表中。

列表可以存储在许多类别中,而类别可以包含许多列表。这些由表* ListingCategory_Listings *:

连接
ID | ListingCategoryID | ListingID

我需要以某种方式获取所有列表中的列表符合特定条件的列表。

例如,想象一下类别,例如:食物,饮料,住宿。

酒吧列表将链接到食品和饮料,酒店将链接到食品,饮料和住宿,宿舍将链接到住宿等。

这些列表中的每一个都是地理编码的,我希望能够显示在确定的地理位置的X英里内的列表的类别。因此,如果只是酒吧在X英里内,我们将展示食物和饮料。如果只是宿舍落在这个半径,我们只显示住宿等。我有逻辑来计算距离,我只是不知道如何得到我想要的结果

最后......为可怕的帖子标题道歉

1 个答案:

答案 0 :(得分:2)

应该像

一样简单
SELECT DISTINCT c.ID, c.name
FROM ListingCategory c
   JOIN ListingCategory_Listings lc
      ON c.ID = lc.ListingCategoryID
WHERE lc.ListingID IN (<list of listings comma separated>)