-1

Lyric データベースを使用しています。Bryce Sanders という名前のメンバーが演奏するすべてのトラックをリストする必要があります。

表は次のとおりです。

トラック

TitleID TrackNum TrackTitle

タイトル

TitleID ArtistID タイトル StudioID ジャンル

アーティスト

アーティストID アーティスト名 都市 地域 国

メンバー

MemberID FirstName LastName Address City Region Country SalesID

営業担当者

SalesID FirstName LastName イニシャル スーパーバイザー

Bryce Sanders は、Members テーブルの一部です。SalesID は、そのテーブルの外部キーです。おそらく、巧妙な結合で SalesID を使用して、彼が記録した TrackTitles を見つけることができます。

ここでも問題は、Bryce Sanders という名前のメンバーが演奏するすべてのトラックをリストする必要があるということです。データベースはLyricです。

これに対する私の試みは次のとおりです。

SELECT Members.Lastname, Members.FirstName, Tracks.TrackTitle 
FROM Members, Tracks 
WHERE Members.lastname = "Sanders";

しかし、これで完全に解決するとは思えません。

4

4 に答える 4

2

次のようにします。

SELECT tr.*
FROM tracks tr
INNER JOIN titles ti ON tr.titleID = ti.titleID
INNER JOIN artists ar ON tr.artistID = ti.artistID
INNER JOIN Members me ON me.artistID =  ar.artistID -- THIS IS MISSING. 
WHERE me.lastname = 'Sanders' AND me.firstname = 'Bryce';

MEMBER と ARTIST に参加する方法が必要ですが、あなたの質問にはそれがありません。メンバーにアーティストIDを追加して「アーティスト」の一部にする例を書きました

于 2013-10-21T00:02:28.410 に答える
0

あなたの説明に基づいて私がそれを見る方法はそれMembersTracksあり、many-to-many一種の関係があります。その場合は、2 つの 1 対多の関係を作成する中間テーブルを作成することをお勧めします。この場合、おそらくMembersTracksテーブルとして名前を付けることができます。これは、にはテーブルにMember関連付けられた多くのトラックがあり、 には多くのトラックが関連付けられていることを意味します。MembersTracksTrackMembers

MembersTracksテーブルの可能なフィールド/列は次のとおりです。

MembersTracksID (PK), MembersID (FK), TrackNum (FK), SubscriptionDate

そして、新しく追加された中間テーブルを使用して、おそらく次のようなクエリを作成できます。

SELECT M.Lastname, M.Firstname, T.TrackTitle
FROM MembersTracks MT
INNER JOIN Members M
ON MT.MembersID = M.MembersID
INNER JOIN Tracks T
ON MT.TrackNum = T.TrackNum
INNER JOIN Titles
ON T.TitleID = Titles.TitleID
WHERE M.Lastname = 'Sanders' AND M.Firstname = 'Bryce'
于 2013-10-21T00:35:15.050 に答える
0

メンバーごとに購入したトラックのリストを含むトランザクション テーブルまたは販売テーブルが必要です。このテーブルには、営業担当者の if も含まれる場合があります。

メンバーズテーブルの販売員は不要です。営業担当者もメンバーである場合、外部キーは逆である必要があります。そうでない場合、これら 2 つのテーブル間に直接的な関係はありません。

于 2013-10-21T00:11:13.403 に答える
0

はい、トラックと売上の関係を追加します。

販売自体

メンバー ID トラック ID。

于 2013-10-21T00:28:57.330 に答える