2012-12-01 67 views
0

以下片段是多個表上的連接。我需要顯示所有來自澳大利亞的訂單號碼,客戶名稱,產品名稱,價格和數量。我得到表格標題但沒有行。這有什麼問題嗎?這爲什麼不能提取任何數據?

SELECT 
     "order".orderno AS ord, 
     customer.cname, 
     product.prodname, 
     customer.country_code, 
     orderdetl.price, 
     orderdetl.qty, 
     country.country_code 
    FROM 
     prema01.country, 
     prema01.customer, 
     prema01."order", 
     prema01.orderdetl, 
     prema01.product 
    WHERE 
     customer.country_code = 'AUS' 

我已經更改了代碼,驗證了表中有數據,它仍然是空白。 我完全難倒了。

SELECT O.ORDERNO, C.CNAME, PN.PRODNAME, ODT.PRICE, ODT.QTY, ODT.QTY * PN.PRODSELL AS TOTAL 
FROM prema01.ORDER O, prema01.CUSTOMER C, prema01.ORDERDETL ODT, prema01.PRODUCT PN, prema01.COUNTRY CT 
WHERE CT.COUNTRY_NAME = 'Australia' 
AND C.COUNTRY_CODE = CT.COUNTRY_CODE 
AND C.CUSTNO = O.CUSTNO 
AND O.ORDERNO = ODT.ORDERNO 
AND PN.PRODNO = ODT.PRODNO AND O.ORDERNO <= 60 
ORDER BY TOTAL DESC; 

忘了添加更改。表中有數據,我已經實際驗證過。

+0

這是什麼SQL?它看起來非常錯誤。 Prem是桌子嗎?可以描述你的桌子和他們有什麼專欄。 –

+0

您使用的是什麼RDBMS?你應該有JOIN子句。 –

+0

其DB2,我使用Postgre來測試我的代碼,因爲iNagivators連接到我的學校是垃圾。 –

回答

1

對於初學者,您需要一些連接條件,例如

Select 
    r.country_code, 
    c.cname 
From 
    prema01.country r 
    inner join 
    prema01.customer c 
    on r.country_code = c.country_code 

您需要以類似的方式建立與其他表的關係。

此外,你確定你的表格中有任何數據。

Select 
    Count(*) 
From 
    prema01.country 

返回什麼?怎麼樣

Select 
    Count(*) 
From 
    prema01.customer 
Where 
    country_code = 'AUS' 

+0

是的,它返回8 –

+0

第一個計數查詢或第二個? – Laurence

+0

2爲第一個查詢,8爲第二個查詢。 –

0

固定的,我在尋找'澳大利亞',而我的國家餐桌上有'澳大利亞'。感謝您的幫助

相關問題