制作具有相似的属性和条件别名

问题描述 投票:0回答:1

我正在做的查询,需要输出新的别名有不同,但类似的,条件。

有两个表;一个人,一个产品,和销售。他们应该有类似以下内容:

person = (personID, personName, isValidPerson)
product = (productID, productName)
sale = (productID, tradeTime, customerID, employeeID)

我的目标是输出productID, productName, customerName, and employeeName的具体时间。它也有到是不同的。

正如你可以从上面的表格中看到的,我们没有属性称为customerNameemployeeName。我明白,我必须做出别名为这两个属性,但我不能让他们出于某种原因,并给我一个错误。

到目前为止,我试图用两个条件的人联系起来,销售表使用AS声明。

为了阐述这个问题,我做了以下内容:

SELECT DISTINCT s.productID, prod.productName,
                psn.personName AND psn.personID = s.customerID AS customerName,
                psn.personName AND psn.personID = s.employeeID AS employeeName,
FROM person psn, product prod, sale s
WHERE s.tradeTime < '2017-01-01 11:00:00';

不过,我不断收到错误到客户名称和employeeName列分配别名。我试图做psn.personID AS customerName和同为employeeName以及从何处申报。但是,我有问题与此并因为两者customerNameemployeeName有问题,承认其psn.personName选择。

如果我能得到这个权利,我希望的是,上述所有四个属性应显示其结果这是之前“2017年1月1日11:00:00”一定的时间范围内。

sql postgresql
1个回答
0
投票

用加入像下面

     Select pr.productID  pr.productname
     ,p.personName as customername,
     P1.personName as employeeName
    from sale s join product pr
  On s.productID=pr.productID
   Left Join person p on s.customerID=p.personID
  Left Join person p1 on s.employeeID=p1.personID

在这里,你需要两次与人表,1为customaername和2加入了employeeName这就是为什么我在加入的时候使用别名

© www.soinside.com 2019 - 2024. All rights reserved.