簡體   English   中英

訪問中的SQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM