如何使用子查询将此查询转换为一个?

时间:2014-11-03 14:54:32

标签: mysql database subquery

我如何转换此块:

select p.ProductNumber, p.Name
from product as p, productsubcategory as ps
where p.ProductSubcategoryID = ps.ProductSubcategoryID
    and ps.Name = 'Pedals'
order by p.ProductNumber;

进入只使用子查询而不是为数据库使用两个别名的那个?

1 个答案:

答案 0 :(得分:1)

以下使用子查询保留表中的别名。表别名是个好主意:

select p.ProductNumber, p.Name
from product p
where p.ProductSubcategoryID in (select ps.ProductSubcategoryID
                                 from productsubcategory ps
                                 where ps.Name = 'Pedals'
                                )
order by p.ProductNumber;

注意:您的原始查询很好,除了它应该使用显式join语法而不是join子句中的隐式where