2015-11-09 15 views
0
SELECT 
    VENDORS.VENDOR_NAME, INVOICE_LINE_ITEMS.LINE_ITEM_DESCRIPTION 
FROM 
    VENDORS, INVOICE_LINE_ITEMS 
USING 
    LINE_ITEM_DESCRIPTION; 
WHERE 
(INVOICE_LINE_ITEMS.LINE_ITEM_DESCRIPTION LIKE '%Card%' OR 
    INVOICE_LINE_ITEMS.LINE_ITEM_DESCRIPTION LIKE '%COBAL%') 

我該如何正確編寫此查詢?如何使用USING子句編寫此查詢。我試圖得到錯誤

+0

什麼你的表像你得到,因爲在你的FROM子句;的錯誤?用您正在使用的數據庫標記您的問題。 –

+0

使用USING,列出提供訂單項的供應商,其中描述包含'Card'或COBOL(兩種格式均不區分大小寫)。包括供應商名稱和說明,輸出中沒有重複行。通過描述來訂購商品。 –

回答

1

您想查詢看起來是這樣的:

SELECT v.VENDOR_NAME, li.LINE_ITEM_DESCRIPTION 
FROM VENDORS v JOIN 
    INVOICE_LINE_ITEMS li 
    USING (VENDOR_ID) 
WHERE li.LINE_ITEM_DESCRIPTION LIKE '%Card%' OR 
     li.LINE_ITEM_DESCRIPTION LIKE '%COBAL%'; 

注:

  • 我猜什麼用於JOIN列確實是。我懷疑這是訂單項描述。
  • USINGJOIN的語法的一部分。簡單的規則:從不FROM條款中使用逗號; 始終使用使用明確的JOIN語法。
  • 表別名使查詢更易於編寫和閱讀。
  • 使用USING時,JOIN的列位於括號內。
  • 分號僅在SQL語句的末尾。
0

如指出以下

FROM 
    VENDORS, INVOICE_LINE_ITEMS 
USING 
    LINE_ITEM_DESCRIPTION; <-- Here 
WHERE .... 

應該

FROM 
    VENDORS v JOIN INVOICE_LINE_ITEMS i 
USING (LINE_ITEM_DESCRIPTION) 
WHERE ....