powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / запрос
3 сообщений из 3, страница 1 из 1
запрос
    #34317375
Mr. White
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для ясности: есть таблица Artist, в которой хранятся ID Артистов, есть таблица Album, в которой - название альбомов с соответствующими ID Артистов. Нужно посчитать кол-во альбомов для каждого ID из таблицы Artist.
У меня получилось вот что:

Код: plaintext
1.
2.
SELECT Artist.Id, Artist.Name, AlbumSum
FROM Artist, [SELECT Artist_Fk, COUNT(Artist_Fk) AS AlbumSum FROM Album GROUP BY Artist_Fk]. AS [Sum]
WHERE Artist.Id=Sum.Artist_Fk;

Проблема в том, что такой запрос считает только тех Артистов, у которых есть, как минимум, один альбом в таблице Album, а у кого нет - тот идет лесом (а нужно выводить нуль, так как смысл такой выборки состоит именно в том, чтобы показать всех существующих в базе данных Артистов). Простите, я не очень разбираюсь, в SQL, помогите мне с этим.
...
Рейтинг: 0 / 0
запрос
    #34317434
ANSI_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr. WhiteДля ясности: есть таблица Artist, в которой хранятся ID Артистов, есть таблица Album, в которой - название альбомов с соответствующими ID Артистов. Нужно посчитать кол-во альбомов для каждого ID из таблицы Artist.
У меня получилось вот что:

Код: plaintext
1.
2.
SELECT Artist.Id, Artist.Name, AlbumSum
FROM Artist, [SELECT Artist_Fk, COUNT(Artist_Fk) AS AlbumSum FROM Album GROUP BY Artist_Fk]. AS [Sum]
WHERE Artist.Id=Sum.Artist_Fk;

Проблема в том, что такой запрос считает только тех Артистов, у которых есть, как минимум, один альбом в таблице Album, а у кого нет - тот идет лесом (а нужно выводить нуль, так как смысл такой выборки состоит именно в том, чтобы показать всех существующих в базе данных Артистов). Простите, я не очень разбираюсь, в SQL, помогите мне с этим.

По стандарту SQL так:

Код: plaintext
1.
2.
3.
SELECT Artist.Id, Artist.Name, count(Album.Artist_Fk)
FROM Artist left join Album  ON Artist.Id=Album.Artist_Fk
GROUP BY Artist.Id, Artist.Name;

Если не работает, идите в форум по вышей базе.
...
Рейтинг: 0 / 0
запрос
    #34317791
Mr. White
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, спасибо вам большое. Работает. Только я впервые вижу "left join" и "ON". /размышляющий смайл/
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]