Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос JOIN + WHERE  [new]
Manonia
Member

Откуда: Иркутск
Сообщений: 112
Здравствуйте. Есть две таблицы, в первой(оценки: good, bad): level_id, level. Во второй: url_id, level_id, comment. Запросом нужно вывести сколько у ссылки каких комментариев, т.е. на вход подаю url_id и должна получить: good: 15, bad: 0. Запрос, который я составила не выводит оценку, если 0 комментариев, т.е. по предыдущему примеры выводит просто good: 15. Пыталась и LEFT JOIN и RIGHT JOIN - не помогает. Вот какой у меня сейчас запрос:

  SELECT l.level_id, l.level, COUNT(*) as count
	FROM dbo.bn_levels l   
        LEFT JOIN dbo.bn_feedback f 
	ON l.level_id = f.level_id
	WHERE f.cut_url_id = @UrlID	
	GROUP BY l.level_id, l.level
	ORDER BY COUNT(cut_url_id) DESC
29 дек 11, 07:37    [11843509]     Ответить | Цитировать Сообщить модератору
 Re: Запрос JOIN + WHERE  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2392
Блог
Manonia,

 SELECT l.level_id, l.level, COUNT(*) as count
	FROM dbo.bn_levels l   
        LEFT JOIN dbo.bn_feedback f 
	ON l.level_id = f.level_id
	AND f.cut_url_id = @UrlID	
	GROUP BY l.level_id, l.level
	ORDER BY COUNT(cut_url_id) DESC
29 дек 11, 08:56    [11843625]     Ответить | Цитировать Сообщить модератору
 Re: Запрос JOIN + WHERE  [new]
Manonia
Member

Откуда: Иркутск
Сообщений: 112
Павел Воронцов, так я тоже пробовала - не работает ...
29 дек 11, 09:10    [11843675]     Ответить | Цитировать Сообщить модератору
 Re: Запрос JOIN + WHERE  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2392
Блог
Manonia, не верю. Приведите тест, на котором не работает.
29 дек 11, 09:25    [11843714]     Ответить | Цитировать Сообщить модератору
 Re: Запрос JOIN + WHERE  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Manonia,

Вариант Павла должен работать.
Если вы приведете скрипты таблиц и тестовых данных, то нам будет легче разобраться что к чему.
29 дек 11, 09:25    [11843716]     Ответить | Цитировать Сообщить модератору
 Re: Запрос JOIN + WHERE  [new]
Manonia
Member

Откуда: Иркутск
Сообщений: 112
И правда работает, мои кривые руки =)
Вот работающий запрос:
SELECT l.level_id, l.level, COUNT(cut_url_id) as count
	FROM dbo.bn_levels l   
        LEFT JOIN dbo.bn_feedback f 
	ON l.level_id = f.level_id
	AND f.cut_url_id = @UrlID	
	GROUP BY l.level_id, l.level
	ORDER BY COUNT(cut_url_id) DESC


Благодарю за оперативную помощь =)
29 дек 11, 09:34    [11843762]     Ответить | Цитировать Сообщить модератору
 Re: Запрос JOIN + WHERE  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Manonia,

поскольку cut_url_id находится в dbo.bn_feedback, а COUNT(cut_url_id) считает записи только для cut_url_id IS NOT NULL,
то какой смысл в LEFT JOIN???

Вы уж либо COUNT(*) пишите, либо INNER JOIN
29 дек 11, 11:00    [11844246]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить