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;

変更を追加するのを忘れました。テーブルにはデータが含まれています。私はそれを物理的に確認しました。

4

2 に答える 2

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'

于 2012-12-01T01:40:26.663 に答える
0

修正済み。国のテーブルに「AUSTRALIA」があるときに「Australia」を探していました。助けてくれてありがとう

于 2012-12-01T02:29:38.103 に答える