Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Добрый день! помогите найти авторов, у которых больше 3х книг?

Книга
-ID
-Имя

Автор
-ID
-Имя


Книга_Автор
ID
ID_Автора
ID_Книги
3 сен 15, 16:40    [18105171]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20600
Читать про:
GROUP BY
COUNT()
HAVING
3 сен 15, 16:40    [18105173]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Akina,
я знаю как это сделать для одной таблицы, а тут данные надо из 2х брать
inner join нужно использовать?
4 сен 15, 11:50    [18107600]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Friend2015
inner join нужно использовать?

да
4 сен 15, 11:52    [18107610]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Ребят, ну помогите! я же не просто сижу и жду правильного ответа . Вы говорите то, что я знаю, но не могу реализовать! я делаю и у меня не получается! вопрос только в том, что выборка не из одной таблицы!
может что-то типа этого
SELECT Book.Name, Author.Name
FROM Book, Author, book_author
WHERE (Book.Id=Reader_Book.ID_Book And Author.Id=Book_Author.ID_Author And Book.ID=Book_Author.ID_book)
GROUP BY Book_Author.ID_AUTHOR
HAVING (Count(Book_Author.ID_AUTHOR))>1;
4 сен 15, 12:21    [18107836]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Friend2015
я же не просто сижу и жду правильного ответа

Что время сдачи теста поджимает ?

Friend2015
может что-то типа этого

Что мешает запустить запрос и проверить результат ?

HAVING (Count(Book_Author.ID_AUTHOR))>1; Это вы так условие " больше 3х" пишите ?
4 сен 15, 12:24    [18107859]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
Friend2015
Ребят, ну помогите! я же не просто сижу и жду правильного ответа .

нет, именно сидите и ждете, вам подсказали про иннер_джоин - где ваша попытка его использовать?

Friend2015
только в том, что выборка не из одной таблицы!

ответ - надо соеденить эти таблицы!
4 сен 15, 12:25    [18107865]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Glory,
1) если вы не заметили я 2ой день это спрашиваю. так что это не время сдачи теста поджимает
2) в синтаксисе есть ошибки. не выполняется
4 сен 15, 12:30    [18107906]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Friend2015
1) если вы не заметили я 2ой день это спрашиваю. так что это не время сдачи теста поджимает

И что это меняет ? Если вам нужен готовый текст запроса, то наймите кого-нибудь

Friend2015
2) в синтаксисе есть ошибки. не выполняется

Соучуствую. До слез прямо.
Вы не пробовали изучать синтаксис ?
4 сен 15, 12:33    [18107927]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Friend2015,

возьмите лист бумаги и нарисуйте последовательность преобразования данных. Затем напишите команды серверу.
4 сен 15, 12:37    [18107952]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
SELECT *
FROM author INNER JOIN book_author ON author.ID = book_author.ID_AUTHOR
where( count(book_author.id_author)>3);

не могу посчитать сколько раз встречается id_author...
4 сен 15, 13:32    [18108415]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Friend2015
не могу посчитать сколько раз встречается id_author...

потому что вы потеряли HAVING
4 сен 15, 13:32    [18108421]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Glory,

SELECT book_author.ID_AUTHOR, Count(*) AS Выражение1
FROM author INNER JOIN book_author ON author.ID = book_author.ID_AUTHOR
GROUP BY book_author.ID_AUTHOR
HAVING (((Count(*))>3));


я вывела id_author и кол-во его книг, а как мне добавить к этому и имя этого автора(из табл Author)?
4 сен 15, 13:51    [18108528]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Friend2015
я вывела id_author и кол-во его книг, а как мне добавить к этому и имя этого автора(из табл Author)?

Наверное надо указать это поле в тексте запроса
4 сен 15, 13:52    [18108539]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Glory,

как именно- после селект перечислить?- мне выдает ошибку
4 сен 15, 13:55    [18108550]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Friend2015
как именно- после селект перечислить?

Разумеется

Friend2015
мне выдает ошибку

И вы прочитали ее ?
4 сен 15, 13:56    [18108554]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
MAX(author.name) as [Имя автора]
4 сен 15, 14:13    [18108658]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1451
Friend2015
Glory,

SELECT book_author.ID_AUTHOR, Count(*) AS Выражение1
FROM author INNER JOIN book_author ON author.ID = book_author.ID_AUTHOR
GROUP BY book_author.ID_AUTHOR
HAVING (((Count(*))>3));


я вывела id_author и кол-во его книг, а как мне добавить к этому и имя этого автора(из табл Author)?


ладно видно что хоть что то пытаетесь подумать:
SELECT a.[ID_Author] AS [ИД_Автор],
       a.[Author_Name] AS [Автор],
       COUNT(DISTINCT b.[ID_BOOK]) AS [Количество книг]
FROM author a
       JOIN book_author b ON b.[ID_AUTHOR] = a.[ID]
GROUP BY a.[ID_Author], a.[Author_Name]
HAVING COUNT(DISTINCT b.[ID_BOOK]) > 3
       
4 сен 15, 14:15    [18108669]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Glory,

SELECT book_author.ID_AUTHOR, Count(*), author.name
FROM author INNER JOIN book_author ON author.ID = book_author.ID_AUTHOR
GROUP BY book_author.ID_AUTHOR
HAVING (((Count(*))>1));

ошибка- попытка выполнить запрос, который не включает указанное выражение 'name' как часть статистической функции или группы
что эта ошибка значит и как мне это исправить
4 сен 15, 14:17    [18108682]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
вам уже 2 варианта предложили, попробуйте
4 сен 15, 14:21    [18108714]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1451
Friend2015
Glory,

SELECT book_author.ID_AUTHOR, Count(*), author.name
FROM author INNER JOIN book_author ON author.ID = book_author.ID_AUTHOR
GROUP BY book_author.ID_AUTHOR
HAVING (((Count(*))>1));

ошибка- попытка выполнить запрос, который не включает указанное выражение 'name' как часть статистической функции или группы
что эта ошибка значит и как мне это исправить


прочитать про агрегацию в Transact-SQL
4 сен 15, 14:21    [18108716]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
1) использование агрегатной ф-ии
2) включение поля в группировку
4 сен 15, 14:22    [18108722]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Konst_One,

1) макс мне не нужен
2) во 2м вар-те- ошибка есть синтаксическая.
4 сен 15, 14:22    [18108727]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
1) зато серверу олн нужен
2) какая?
4 сен 15, 14:23    [18108733]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из 2х таблиц  [new]
Friend2015
Member

Откуда:
Сообщений: 12
Konst_One,

ПРОУЩЕН ОПЕРАТОР В Выражении COUNT(DISTINCT b.[ID_BOOK])
4 сен 15, 14:55    [18108998]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить