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