0

以下の次のSQLクエリは、指定された結果を生成します。

 select product.product_no,product_type,salesteam.rep_name,salesteam.SUPERVISOR_NAME
 from product
 inner join salesteam
 on product.product_rep=salesteam.rep_id
 ORDER BY product.Product_No;

ただし、私の意図は、PRODUCTテーブルのすべての属性を含むより詳細な結果をさらに生成することです。私のアプローチは、クエリの最初の行にすべての属性をリストすることです。

 select product.product_no,product.product_date,product.product_colour,product.product_style,
 product.product_age product_type,salesteam.rep_name,salesteam.SUPERVISOR_NAME
 from product
 inner join salesteam
 on product.product_rep=salesteam.rep_id
 ORDER BY product.Product_No;

PRoductテーブルのすべての属性を1つずつリストする代わりに、それを実行できる別の方法はありますか?

4

3 に答える 3

4

を使用*して、すべてのテーブルからすべての列を選択することも、を使用[table/alias].*して、指定したテーブルからすべての列を選択することもできます。あなたの場合、あなたは使用することができますproduct.*

select product.*,salesteam.rep_name,salesteam.SUPERVISOR_NAME
from product
inner join salesteam
on product.product_rep=salesteam.rep_id
ORDER BY product.Product_No;

これは、すべての列が必要であると100%確信している場合にのみ行う必要があり、常に必要になることに注意してください。これに関連するパフォーマンスへの影響があります。本当に必要な列が4つまたは5つしかないときに、テーブルから100の列を選択すると、クエリに多くのオーバーヘッドが追加されます。DBMSはよりハードに動作する必要があり、ネットワークを介してより多くのデータを送信することにもなります(データベースが実行中のコードと同じマシン上にない場合)。

後でテーブルに列が追加された場合product、それらの列も将来このクエリによって返されます。

于 2012-11-12T18:21:20.060 に答える
2
 select 
      product.*, 
      salesteam.rep_name,
      salesteam.SUPERVISOR_NAME
 from product inner join salesteam on 
      product.product_rep=salesteam.rep_id
 ORDER BY 
      product.Product_No;

これで十分です。

于 2012-11-12T18:21:45.547 に答える
0

あなたはこのように書くことができます

select P.*  ---  all Product columns 
,S.* --- all salesteam columns
 from product P
 inner join salesteam S
 on P.product_rep=S.rep_id
 ORDER BY P.Product_No;
于 2012-11-12T18:21:22.010 に答える