2015-02-04 3 views
0

У меня есть таблица, которая будет иметь данные, как этотSQL заявление путаница

PRODUCTID | GENREID 
1   | 5 
1   | 6 
1   | 8 
2   | 5 
2   | 10 
3   | 6 

И я пытаюсь написать заявление, где, если я обеспечиваю число 5, 6 и 8, то это будет только вернуться me ProductID '1'. Моя первая мысль была, чтобы написать что-то вроде этого, но я начинаю путать себя я не SQL Ниндзя:

select 
    p1.productid 
from 
    dbo.ProductGenre p1 
inner join 
    dbo.ProductGenre p2 on p2.GenreID = p1.GenreID 
where 
    p1.GenreID = 5 

ответ

3
SELECT productid 
FROM dbo.productgenre 
WHERE genreid IN (5, 6, 8) 
GROUP BY productid 
HAVING Count(DISTINCT genreid) = 3 
+0

Я пытался применять свой формат SQL, чтобы соответствовать моим данным, но это не возвращаются ничего – user3267755

+0

В приведенном выше описании отсутствует «s». иногда в нашей спешке мы копируем-вставляем и запускаем его. Просто интересно, если вы получаете синтаксическую ошибку. – abhi

+0

@abhi Я заметил, что когда я копировал и вставлял его и добавлял 's' для выбора, но он не возвращал данные, спасибо, хотя – user3267755

Смежные вопросы