带JOIN的SQL类别 - 多选

时间:2015-07-19 00:26:10

标签: sql sql-server

我有以下设置:

  1. 1个包含新闻的表格,每个新闻项目都有类别
  2. 1个包含类别的表格,例如" cars"和"船"
  3. 1表连接新闻与类别
  4. 现在生病了一系列类别,并且想要显示适合所有类别的表1(例如新闻)中的项目。因此,如果生病了ID 35和ID 36,则连接表中的两个ID都必须有一个条目。

    例如:

    SELECT * 
    FROM inserate 
    INNER JOIN rubrikenZuordnungen ON inserate.ID = rubrikenZuordnungen.InseratID
    WHERE 
        (rubrikenZuordnungen.RubrikID = 35) AND 
        (rubrikenZuordnungen.RubrikID = 36)
         OFFSET 10 ROWS
         FETCH NEXT 20 ROWS ONLY
    

    如果我使用它,它就无法正常工作,因为rubrikenZuordnungen只会得到1个结果。

    任何人都可以帮助我吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

这是一种方式。

SELECT *
FROM inserate
WHERE ID IN
(
SELECT InseratID
FROM rubrikenZuordnungen
WHERE RubrikID IN (35,36)
GROUP BY InseratID
HAVING COUNT(DISTINCT RubrikID)=2
)