以下代码段是多个表的连接。我需要显示从澳大利亚任何人订购的所有订单号,客户名称,产品名称,价格和数量。我得到表标题,但没有行。这有什么问题吗?
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 :(得分: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'
答案 1 :(得分:0)
修正了,我正在寻找'澳大利亚',而我在我的国家/地区表中有'澳大利亚'。谢谢你的帮助