首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >内部联接ORA-00904:无效标识符

内部联接ORA-00904:无效标识符
EN

Stack Overflow用户
提问于 2013-11-19 10:06:58
回答 3查看 2.8K关注 0票数 0

表格仓库的表结构

代码语言:javascript
运行
复制
CREATE TABLE Warehouse (
  wID NUMBER(25)  ,
  Location VARCHAR2(70) ,
  Num_Employees NUMBER(25) ,
  Stock NUMBER(25) ,
  PRIMARY KEY  (wID)
);

CREATE SEQUENCE WAREHOUSE_SEQ 
    START WITH 1 
    INCREMENT BY 1 
    NOMAXVALUE;


INSERT INTO Warehouse (wID, Location, Num_Employees, Stock) 
    VALUES (WAREHOUSE_SEQ.nextval , 'Dallas', '3', '13');
INSERT INTO Warehouse (wID, Location, Num_Employees, Stock) 
    VALUES (WAREHOUSE_SEQ.nextval , 'Denver', '3', '07');
INSERT INTO Warehouse (wID, Location, Num_Employees, Stock) 
    VALUES (WAREHOUSE_SEQ.nextval , 'Detroit', '3', '09');
INSERT INTO Warehouse (wID, Location, Num_Employees, Stock) 
    VALUES (WAREHOUSE_SEQ.nextval , 'Phoenix', '3', '14');
INSERT INTO Warehouse (wID, Location, Num_Employees, Stock) 
    VALUES (WAREHOUSE_SEQ.nextval , 'Atlanta', '3', '07');

查询:

代码语言:javascript
运行
复制
SELECT DISTINCT
    Orders.wID,
    person.name,
    Employee.*,
    Warehouse.wID
FROM person
    INNER JOIN Orders ON Orders.wID = Warehouse.wID
    INNER JOIN Warehouse ON Warehouse.LOCATION=Employee.WORK_LOCATION
    INNER JOIN Employee ON Employees.ETYPE='Manager'
    WHERE Employee.EID = person.Id;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-19 10:15:29

试试这个..。

代码语言:javascript
运行
复制
SELECT DISTINCT Orders.wID, person.name, Employee.*, Warehouse.wID 
FROM person INNER JOIN Employee         
ON   person.Id =  Employee.EID         
INNER JOIN Warehouse                        
ON Warehouse.LOCATION = Employee.WORK_LOCATION    
INNER JOIN Orders  
ON Orders.wID = Warehouse.wID
WHERE Employees.ETYPE ='Manager';
票数 1
EN

Stack Overflow用户

发布于 2013-11-19 10:14:15

问题是您的第一个连接:“在Orders.wID =Warehouse.wID上从person内部连接命令”

表'Warehouse‘目前还没有可用,但是您已经在'on’部分中提到了它。

票数 2
EN

Stack Overflow用户

发布于 2013-11-19 10:16:09

试着这样做:

代码语言:javascript
运行
复制
SELECT DISTINCT Orders.wID,
  person.NAME,
  Employee.*,
  Warehouse.wID
FROM person
INNER JOIN Employee ON Employee.EID = person.Id;
INNER JOIN Warehouse ON Warehouse.LOCATION = Employee.WORK_LOCATION
INNER JOIN Orders ON Orders.wID = Warehouse.wID
WHERE Employees.ETYPE = 'Manager'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20068558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档