2013-11-19 5 views

ответ

2

Нет, это потому, что в США более одного художника.

Что вам нужно? Все названия, написанные авторами в США? Или все названия для одного конкретного автора?

Если вы хотите, чтобы все названия, написанные авторами в США,

Select title from Titles 
Where ArtistId In (Select ArtistID From artists 
        where Country = 'USA') 

или

Select title from Titles t 
    join Artists a 
     On a.ArtistId = t.ArtistId 
Where a.Country = 'USA' 

Если вы хотите, чтобы названия для одного конкретного автора, необходимо указать, какой конкретный автор вас хотят названия для ...

0

Это означает, что у вас есть более одного художника с country = 'USA'

Вы можете это исправить, как это вернуть только любое название из любого художника из США

SELECT T.Title FROM Titles T WHERE T.ArtistID = 
(SELECT TOP 1 A.ArtistID FROM Artists A WHERE A.Country = "USA"); 

, если вы хотите, чтобы все названия с художниками от использования США РЕГИСТРИРУЙТЕСЬ

SELECT T.Title FROM Titles T 
JOIN Artists A ON T.ArtistID = A.ArtistID 
WHERE A.Country = "USA" 

или

SELECT T.Title FROM Titles T WHERE T.ArtistID in 
(SELECT TOP 1 A.ArtistID FROM Artists A WHERE A.Country = "USA"); 
0

Ваш вопрос неоднозначен. Не видя данных, могу сказать, почему у вас две строки.

Сколько у ArtistIDs есть страна США? Запустите дополнительный запрос отдельно и посмотрите, сколько идентификаторов оно вернет и какие из них.

Тогда сколько раз эти идентификаторы ArtistID появляются в таблице Titles. Моя догадка больше чем одна.

Смежные вопросы