2015-07-19 72 views
1

我有以下設置:SQL關鍵字JOIN - 多重選擇

  1. 1臺新聞,每個新聞項目都有類別
  2. 1類別表,例如「汽車」和「船」
  3. 1表進行分類

連接消息現在生病了類別的數組,和虐待想顯示從表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 

如果我使用,它不工作,因爲我只得到1的結果爲rubrikenZuordnungen

任何人都可以幫我嗎?提前致謝。

+0

這應該返回0行。任何一行都不可能滿足這兩個條件。 –

+0

是的,我知道,這就是爲什麼我問 - 但沒有SQL方法來解決這個問題嗎? – derdida

回答

2

這是一種方法。

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

謝謝!很棒 – derdida