Join

加入兩個表

  • October 12, 2016

我使用以下程式碼創建了三個表:

CREATE TABLE Invoices (
   invoiceID nvarchar(5) NOT NULL PRIMARY KEY, 
   invoiceDate date, 
);

CREATE TABLE ContainsItems (
   invoiceID nvarchar(5) REFERENCES Invoices(invoiceID),
   itemID nvarchar(5) REFERENCES Items(itemID),
   itemQuantity numeric(2, 0)
);

CREATE TABLE Items (
   itemID nvarchar(5) NOT NULL PRIMARY KEY,
   itemName nvarchar(20),
   unit nvarchar(20), 
   pricePerUnit float
);

對於給定的發票 (invoiceID),我如何查詢列表中的所有項目 (itemNames) 及其相應的單位價格,以及開票的單位數量 (itemQuantity)?

我整晚都在嘗試這個並且被難住了。

SELECT *
FROM ContainsItems ci
INNER JOIN Items i    ON ci.itemID    = i.itemID 
INNER JOIN Invoice iv ON ci.invoiceID = iv.invoiceID 
WHERE ci.invoiceID = @yourInvoiceID

您將要從JOIN語句中進行選擇。在這種情況下,一個INNER JOIN.

嘗試這樣的事情:

SELECT i.itemName, i.pricePerUnit, c.itemQuantity 
FROM Items AS i 
INNER JOIN ContainsItems ON i.itemID = c.itemID 
WHERE i.invoiceID = @yourInvoiceID

在連接中為表設置別名有助於防止衝突。

引用自:https://dba.stackexchange.com/questions/149158