我正在做的查询,需要输出新的别名有不同,但类似的,条件。
有两个表;一个人,一个产品,和销售。他们应该有类似以下内容:
person = (personID, personName, isValidPerson)
product = (productID, productName)
sale = (productID, tradeTime, customerID, employeeID)
我的目标是输出productID, productName, customerName, and employeeName
的具体时间。它也有到是不同的。
正如你可以从上面的表格中看到的,我们没有属性称为customerName
和employeeName
。我明白,我必须做出别名为这两个属性,但我不能让他们出于某种原因,并给我一个错误。
到目前为止,我试图用两个条件的人联系起来,销售表使用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
以及从何处申报。但是,我有问题与此并因为两者customerName
和employeeName
有问题,承认其psn.personName
选择。
如果我能得到这个权利,我希望的是,上述所有四个属性应显示其结果这是之前“2017年1月1日11:00:00”一定的时间范围内。
用加入像下面
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这就是为什么我在加入的时候使用别名