1

タイトルを記録していないすべてのアーティストの名前を表示するにはどうすればよいですか? 最初に次のクエリを実行すると:

SELECT * FROM Titles WHERE ArtistID is null;

空集合を生成します。

問題のテーブルは次のようになります。

アーティスト

ArtistID、ArtistName、都市、地域、国、EntryDate

タイトル

TitleID、ArtistID、タイトル、StudioID、UPC、ジャンル、

アーティストまたはタイトルの null レコードはありません。たとえば、各レコードにはいくつかのデータがあります。上記のクエリでは空のセットが生成されるため、これはすべてのアーティストにタイトルが記録されているということですか?

4

4 に答える 4

2

私はあなたが次のものを探していると思います:

SELECT ArtistName FROM Artists WHERE NOT ArtistID IN (SELECT t.ArtistID FROM Titles t)

おそらく少し高速ですが、読みにくい別のオプション:

SELECT ArtistName FROM Artists LEFT JOIN Titles ON Titles.ArtistID = Artists.ArtistID WHERE TitleID IS NULL
于 2013-10-26T19:42:12.990 に答える
0
SELECT Artists.* 
FROM Artists 
WHERE Artists.ArtistID NOT IN (SELECT Titles.ArtistID FROM Titles)

これはうまくいくはずです。他の書き方もできますが、これで十分です。

于 2013-10-26T19:46:41.750 に答える
0

次のようなことを試してください:

SELECT * 
FROM Artists
WHERE artistID NOT IN (
    SELECT artistID  
    FROM Titles
    );
于 2013-10-26T19:42:26.177 に答える
0

上記のクエリでは空のセットが生成されるため、これはすべてのアーティストにタイトルが記録されているということですか?

いいえ、すべてのタイトルにアーティストが関連付けられていることを意味します。

タイトルのないアーティストを取得するには、次のようにする必要があります。

SELECT Artist.* 
FROM Artist 
WHERE ArtistId NOT IN (SELECT DISTINCT ArtistId FROM Titles)
于 2013-10-26T19:43:31.140 に答える