我有两张桌子:
Employee(empNo, lName, fName, sex, dob, address, deptno, position)
Zip(city, state, zipcode)
在 Employee 表中,地址是这样存储的:55 Maple Ln., AL 55555
是的,我知道这是存储地址的最可怕的方式,但这是我无法控制的。
我需要在查询中返回 empNo、lName、fName、地址的街道部分、州部分、城市和邮政编码。这就是我正在使用的,我很难让它正常工作:
SELECT empNo, lName, fName,
substr(Address,0, INSTR(Address,',')-1) AS streetAddr,
city,
substr(Address, INSTR(Address,',')+2,2) AS stateAddr,
substr(Address,-5) AS zipC
FROM Employee
JOIN Zip z ON z.zipcode = zipC
WHERE deptNo = '124';
我得到的错误是在 JOIN 语句上;zipC 是无效标识符。我的问题是我试图通过表的邮政编码部分加入员工和邮编。我只需要这样做,以便我可以摆脱邮政编码的城市。
编辑#1
我也试过这个:
SELECT e.empNo, e.lName, e.fName,
substr(e.Address,0, INSTR(e.Address,',')-1) AS streetAddr,
z.city,
substr(e.Address, INSTR(e.Address,',')+2,2) AS stateAddr,
substr(e.Address,-5) AS zipC
FROM Employee e, Zip z
WHERE deptNo = '124';