【问题标题】:Need help writing a query using WHERE需要帮助使用 WHERE 编写查询
【发布时间】:2019-05-25 01:48:10
【问题描述】:

编写查询以显示所有男性员工的员工编号、员工全名、专业 id。

SELECT staffid, firstname, lastname, specid, specname 
  FROM staff, staffspeciality, speciality     
 WHERE speciality.specid = staff_speciality.specid     
 WHERE staff.staffid = staff_speciality.staffid     
 WHERE gender = ‘M’;

SQL> 描述员工

Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 STAFFID                                   NOT NULL CHAR(2)
 FIRSTNAME                                          VARCHAR2(20)
 LASTNAME                                           VARCHAR2(20)
 ROLE                                               VARCHAR2(15)
 GENDER                                             CHAR(1)
 DATEJOINED                                         DATE
 DATELEFT                                           DATE

SQL> 描述专业;

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SPECIALID                                 NOT NULL CHAR(4)
 SPECNAME                                           VARCHAR2(20)
 SPECNOTES                                          VARCHAR2(100)

SQL> 描述员工专业;

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 STAFFID                                   NOT NULL CHAR(2)
 SPECID                                    NOT NULL CHAR(4)
 DATEQUALIFIED                             NOT NULL DATE
 VALIDTILLDATE                                      DATE
 DETAILS                                            VARCHAR2(100)

【问题讨论】:

  • 提示:JOINON.
  • 我不知道怎么用,你能给我举个例子吗

标签: sql oracle


【解决方案1】:

像这样:

SELECT staff.staffid, staff.firstname, staff.lastname, staff_speciality.specid, speciality.specname 
  FROM staff 
  JOIN staff_speciality
    ON staff.staffid = staff_speciality.staffid   
  JOIN speciality     
    ON speciality.specid = staff_speciality.specid         
 WHERE gender = ‘M’;

【讨论】:

  • 第 1 行出现错误:ORA-00904:“SPECIALTY”。“SPECNAME”:标识符无效
  • 这是一个错字对不起.. 它应该是speciality.specname。检查编辑的答案
  • 很高兴我能帮助@reece
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
相关资源
最近更新 更多