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 表的所有属性?

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% 确定需要每一列并且始终需要时,才应该这样做。有与此相关的性能影响;如果您从表中选择 100 列,而实际上只需要其中的 4 或 5 个,那么您会为查询增加很多开销。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 回答