2013-12-12 1 views
0

Если я хочу найти название книги, опубликованное ровно в два года, это работает?Использование HAVING для поиска, когда ровно одна строка соответствует условию

SELECT books1.title 
FROM Books books1 INNER JOIN Books books2 ON books1.title = books2.title 
WHERE books1.year <> books2.year 
GROUP BY books1.title 
HAVING COUNT(*) = 1 

Так что я думаю, что бы объединить все строки в другие строки с тем же названием, а затем он будет возвращать названия, где одна и только одна строка имеет другой books1.year и books2.year для такое же название. Это то, что он делает?

+0

Что произошло, когда вы попробовали? Он вернул ошибку? – BWS

ответ

4

вы можете группировать записи по title и рассчитывать и фильтровать только тех, у кого есть два уникальных значения: year.

SELECT title 
FROM Books 
GROUP BY title 
HAVING COUNT(DISTINCT year) = 2 
+0

О, это намного проще, почему я просто не подумал об этом? >. <Я выберу этот ответ, когда таймер позволит мне. – Aurast

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

  • Нет связанных вопросов^_^