如何在sql Join查询中选择所有属性

时间:2012-11-12 18:16:34

标签: sql oracle

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

3 个答案:

答案 0 :(得分: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表中,则此查询将来也会返回这些列。

答案 1 :(得分: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;

这应该做。

答案 2 :(得分: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;