Тема: Допоможiть будь ласка з вирiшенням завдання
Завдання здається не важким, але не виходить його вирішити. Надіюсь на вашу допомогу.
База даних містить дві таблиці (завдання під ними):
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Бази даних → Допоможiть будь ласка з вирiшенням завдання
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Завдання здається не важким, але не виходить його вирішити. Надіюсь на вашу допомогу.
База даних містить дві таблиці (завдання під ними):
Пари розділів з будь-якого посібника по базам даних було б достатньо. Ану давайте, пишіть, як ви пробували.
пробувала онлайн-уроки http://www.w3schools.com/, http://www.quackit.com/ http://databases.about.com/
Ось один із варіантів моїх спроб
proc SQL;
title 'Author UNION Book';
select NAME from Book
WHERE TYPE='Роман'
union
select NAME from Author;
не знаю що тут не так
пробувала онлайн-уроки http://www.w3schools.com/, http://www.quackit.com/ http://databases.about.com/
Ось один із варіантів моїх спроб
proc SQL;
title 'Author UNION Book';
select NAME from Book
WHERE TYPE='Роман'
union
select NAME from Author;не знаю що тут не так
UNION лише об'єднує результати двох запитів в один. Вам же треба з'єднати таблицю з авторами і таблицю з книгами. Використайте INNER JOIN.
Форта Б. Освой самостоятельно SQL
Цікавенька книжка, почитайте, там коротко, багато кому сподобалась
SELECT book.name, author.name
FROM Book
where type='Роман'
INNER JOIN Author
ON author.name = book.name
ORDER BY book.name;
Яка тут помилка? підкажіть будь ласка
SELECT book.name, author.name
FROM Book
where type='Роман'
INNER JOIN Author
ON author.name=book%2Ename
ORDER BY book.name;Яка тут помилка? підкажіть будь ласка
Ви з'єднуєте таблиці на імені автора і назві книжки. Тобто, рядки вважатимуться одним рядком, якщо ім'я автора і назва книги однакова. У вас для цього є більш підходящі поля в обох таблицях.
Ви маєте на увазі використати alias?
SELECT author.name AS authors, book.name AS books
from Author
where book.author_id=author.author_id
AND book.type='Роман'
INNER JOIN Book
ON author.name = book.name
ORDER BY book.name;
Ви маєте на увазі використати alias?
SELECT author.name AS authors, book.name AS books
from Author
where book.author_id=author.author_id
AND book.type='Роман'
INNER JOIN Book
ON author.name=book%2Ename
ORDER BY book.name;
Ні. Ваша проблема в тому, НА чому ви з'єднуєте таблиці. INNER JOIN співставить деяким рядкам з першої таблиці по одному рядку з іншої. От ви й кажете (в рядку з ON): зроби-но мені таблицю з книгами, назви яких співпадають з іменами авторів. Сенсу в такій таблиці немає. Проте у вас в таблиці з книгами, є поле, яке дозволяє визначити автора.
SELECT book.name, author.name
FROM Book
where type='Роман'
INNER JOIN Author
ON book.author_id=author.author_id
ORDER BY book.name;
так правильно?
(чомусь Microsoft SQL Server Management Studio пише Incorrect syntax near the keyword 'INNER'.)
Так, тільки WHERE після ON.
Так, тільки WHERE після ON.
Велике Дякую, виручив
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися