Я хочу сортировать книги, написанные автором на английском языке в DESC
год публикации. Я подключил внутреннее соединение, но не могу преобразовать строку в int, чтобы она не работала. Любые идеи, пожалуйста?SQL database join
CREATE DATABASE [Books Database]
CREATE TABLE [Books]
(
[id] [int] IDENTITY (1,1) NOT NULL,
[book name] [NVARCHAR] (75),
[year published] [int],
[book prize won] [NVARCHAR] (75),
)
INSERT INTO [Books] ([book name], [year published], [book prize won])
VALUES('Amsterdam',1998, 'Booker prize')
INSERT INTO [Books]
VALUES('The God of Small Things',1997, 'Booker prize')
INSERT INTO [Books]
VALUES('The Cost of Living',1999, NULL)
INSERT INTO [Books]
VALUES('Last Orders',1996, 'Booker prize')
INSERT INTO [Books]
VALUES('The Sweetshop Owner',1997,NULL)
INSERT INTO [Books]
VALUES('How Late it Was, How Late',1994 , 'Booker prize')
INSERT INTO [Books]
VALUES('Spirit Level',1996, 'Whitbread Poetry and the Whitbread Book prizes')
INSERT INTO [Books]
VALUES('Behind the Scenes at the Museum',1995 , 'Whitbread Book prize')
INSERT INTO [Books]
VALUES('Emotionally Weird',2000, NULL)
INSERT INTO [Books]
VALUES('Human Croquet',1998, NULL)
INSERT INTO [Books]
VALUES('Felicia''s Journey' ,1994, 'Whitbread Novel and the Whitbread Book prizes')
INSERT INTO [Books]
VALUES('Every Man for Himself',1996, 'Whitbread Novel prize')
INSERT INTO [Books]
VALUES('Midnight''s Children',1980, 'Booker prize')
INSERT INTO [Books]
VALUES('The Satanic Verses',1988, 'Whitbread Novel prize')
INSERT INTO [Books]
VALUES('The Moor''s Last Sigh',1995 , 'Whitbread Novel prize')
INSERT INTO [Books]
VALUES('Larry''s Party',1998, 'Orange prize')
INSERT INTO [Books]
VALUES('Fugitive Pieces',1997 , 'Orange and the Guardian Fiction prizes')
INSERT INTO [Books]
VALUES('Reading in the Dark' ,1996 , 'Guardian Fiction prize')
INSERT INTO [Books]
VALUES('Debatable Land',1994, 'Guardian Fiction prize')
CREATE TABLE [Authors]
(
[id] [int] IDENTITY (1,1) NOT NULL,
[author name] [NVARCHAR] (75),
[author surname] [NVARCHAR] (75),
[nationality] [NVARCHAR] (75),
[yob] [int]
)
INSERT INTO [Authors] ([author name], [author surname],[nationality], [yob])
VALUES('Ian', 'McEwan', 'English', 1948)
INSERT INTO [Authors]
VALUES('Arundhati','Roy', 'Indian', 1961)
INSERT INTO [Authors]
VALUES('Graham','Swift', 'English', 1949)
INSERT INTO [Authors]
VALUES('James','Kelman', 'Scottish', 1946)
INSERT INTO [Authors]
VALUES('Seamus','Heaney', 'Irish', 1939)
INSERT INTO [Authors]
VALUES('Kate','Atkinson', 'English', 1951)
INSERT INTO [Authors]
VALUES('William','Trevor','Irish', 1928)
INSERT INTO [Authors]
VALUES('Beryl','Bainbridge','English', 1936)
INSERT INTO [Authors]
VALUES('Salman','Rushdie','Indian', 1947)
INSERT INTO [Authors]
VALUES('Carol','Shields','American', 1950)
INSERT INTO [Authors]
VALUES('Anne','Michaels','Canadian', 1955)
INSERT INTO [Authors]
VALUES('Seamus','Deane','Irish', 1940)
INSERT INTO [Authors]
VALUES('Candia','McWilliam','Scottish', 1955)
/* 1) List name and surname of all authors in alphabetical order. */
SELECT TOP 1000 [id]
,[author name]
,[author surname]
,[nationality]
,[yob]
FROM [Books Database].[dbo].[Authors]
ORDER BY [author name],[author surname] ASC
/* 2) List title of all books written by English authors in descending order of publication year. */
SELECT TOP 1000
[author name]
,[author surname]
,[nationality]
,[yob]
FROM [Books Database].[dbo].[Authors]
INNER JOIN [Books Database].[dbo].[Books]
ON [Books Database].[dbo].[Authors].[nationality] = [Books Database].[dbo].[Books].[year published]
ORDER BY [year published] DESC
'так что это не сработает' ... это не облегчает нам помощь. Кроме того, не существует способа связать таблицы «Книга» и «Автор». Присоединение, которое вы делаете, не имеет смысла, и я не вижу ничего такого. –
Tagged 'sql-server', но вы указываете' mysql' в своем вопросе. Просьба уточнить. –
Ваше участие идет от авторской национальности к году издания книг - это звучит как разумное соединение с вами? – Jamiec