2016-07-31 26 views
-1

我創建了一個數據庫,我試圖運行JOIN代碼。我沒有收到任何錯誤,但它也不會返回任何結果。下面是我提出的代碼,包括我插入到表中的行。創建數據庫和加入代碼不會返回結果

INSERT INTO USERS(EmailAddress, FirstName, LastName) 
VALUES 
    ('[email protected][enter image description here][1]l.com', 'John', 'Smith'), 
    ('[email protected]', 'Jane', 'Doe') 

INSERT INTO Downloads(FileName, DownloadDate) 
VALUES 
    ('pedals_are_falling.mp3', GETDATE()), 
    ('turn_signal.mp3', GETDATE()), 
    ('one_horse_town.mp3', GETDATE()) 

INSERT INTO Product(ProductName) 
VALUES 
    ('Local Music Vol 1'), 
    ('Local Music Vol 2') 

SELECT EmailAddress AS email_address, 
     FirstName AS first_name, 
     LastName AS last_name, 
     DownloadDate AS download_date, 
     FileName, 
     ProductName AS product_name 
FROM Downloads JOIN Users 
ON Downloads.UserID = Users.UserID 
JOIN Product 
ON Product.ProductID = Downloads.ProductID 
ORDER BY EmailAddress; 
+2

如果您想要在userID/productID上加入下載,而不是您需要此表中的這些字段(您的插入不包括它們)。在這種情況下,我認爲它是一對一的關係,因爲這是基於你的SELECT的外觀。如果您需要多對多(很可能基於表名),則需要中間表,如UsersDownloads,其中放置了userID和downloadID,然後才能通過它們進行連接。 – StormoPL

+0

你正在使用哪些DBMS? –

+0

插入中沒有「UserID」列。 –

回答

0

既然你說你沒有得到錯誤,我假設查詢中引用的連接列確實存在。但是你並沒有在你的INSERT語句中給它們賦值。

所以你應該看看錶中的實際數據,我想應該非常清楚爲什麼連接沒有找到匹配的行。

您在這些列中沒有值,或者您在每個插入點上自動生成值。無論哪種方式,插入內容中都沒有任何內容可以指示哪些用戶下載哪些內容,或哪些產品與哪些內容下載。

相關問題