[英]SQL queries in access
我在訪問中有5個表,分別是IDTable,ArtistTable,BandTable,AlbumTable和SongTable。
我應該按藝術家ID搜索,插入,刪除和更新。 首先,我嘗試將ID組合起來,就像給ID以彼此依賴的方式一樣。
-------------------- BandTable ----------------------
BandID (PK) BandName
1 Guns and Roses
2 Mumford and Sons
------------------- ArtistTable ----------------------
ArtistID (PK) BandID ArtistName BirthDate City Country
1 2 Marcus Mumford 31.01.1987 London UK
2 2 Winston Marshall
3 2 Ben Lovett
4 2 Ted Dwane
-------------------- AlbumTable ---------------------
AlbumID (PK) ArtistID AlbumName Year Genre AlbumImage
1 1 Sigh No More 2009 Folk Rock
2 1 Babel
-------------------- SongTable ----------------------
SongID (PK) AlbumID SongName Duration Lyricist
1 1 Little Lion Man 4.06 Mumford and Sons
2 1 Winter Winds
3 2 I Will Wait
4 2 Lover of the Light
但是,每個樂隊都有一個藝術家,但不是每個藝術家都有一個樂隊,因此我無法在此處做出Join聲明。
然后,我嘗試將IDTable中的所有ID合並到其他表中,如下所示;
--------------------- IDTable ------------------------
ID (PK) ArtistID BandID AlbumID SongID
1 1 2 1 1
2 1 2 1 2
3 1 2 2 3
4 1 2 2 4
5 2 2 1 1
6 2 2 1 2
7 2 2 2 3
8 2 2 2 4
------------------- ArtistTable ----------------------
ArtistID (PK) ArtistName BirthDate City Country
1 Marcus Mumford 31.01.1987 London UK
2 Winston Marshall
3 Ben Lovett
4 Ted Dwane
-------------------- BandTable ----------------------
BandID (PK) BandName
1 Guns and Roses
2 Mumford and Sons
-------------------- AlbumTable ---------------------
AlbumID (PK) AlbumName Year Genre AlbumImage
1 Sigh No More 2009 Folk Rock
2 Babel
-------------------- SongTable ----------------------
SongID (PK) SongName Duration Lyricist
1 Little Lion Man 4.06 Mumford and Sons
2 Winter Winds
3 I Will Wait
4 Lover of the Light
(PK)表示主鍵。
代碼是:
String query = "SELECT "
+ " ArtistTable.ArtistName"
+ " ArtistTable.BirthDate"
+ " ArtistTable.City"
+ " ArtistTable.Country"
+ " BandTable.BandName,"
+ " AlbumTable.AlbumName"
+ " AlbumTable.Year"
+ " AlbumTable.Genre"
+ " SongTable.SongName"
+ " SongTable.Duration"
+ " SongTable.Lyricist"
+ "FROM (((IDTable "
+ "INNER JOIN ArtistTable ON IDTable.ArtistID = ArtistTable.ArtistID) "
+ "INNER JOIN BandTable ON IDTable.BandID = BandTable.BandID) "
+ "INNER JOIN AlbumTable ON IDTable.AlbumID = AlbumTable.AlbumID) "
+ "INNER JOIN SongTable ON IDTable.SongID = SongTable.SongID "
+ "WHERE IDTable.ID=" +ID+";";
但這沒用。 我不知道我給的主鍵錯誤還是代碼錯誤。
謝謝。
嘗試這個:
String query = "SELECT "
+ " ArtistTable.ArtistName,"
+ " ArtistTable.BirthDate,"
+ " ArtistTable.City,"
+ " ArtistTable.Country,"
+ " BandTable.BandName,"
+ " AlbumTable.AlbumName,"
+ " AlbumTable.Year,"
+ " AlbumTable.Genre,"
+ " SongTable.SongName,"
+ " SongTable.Duration,"
+ " SongTable.Lyricist"
+ "FROM IDTable "
+ "INNER JOIN ArtistTable ON IDTable.ArtistID = ArtistTable.ArtistID "
+ "INNER JOIN BandTable ON IDTable.BandID = BandTable.BandID "
+ "INNER JOIN AlbumTable ON IDTable.AlbumID = AlbumTable.AlbumID "
+ "INNER JOIN SongTable ON IDTable.SongID = SongTable.SongID "
+ "WHERE IDTable.ID=" +ID+";";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.