Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
三个表之间的SQL关系_Sql - Fatal编程技术网

三个表之间的SQL关系

三个表之间的SQL关系,sql,Sql,我需要一些关于SQL语句的帮助 我有树桌 问题 解决方案 雇员 问题表包含问题的ID、描述、报告人的ID 解决方案表包含解决方案的ID,说明,以及解决问题的人员的ID Employee表包含一个ID,即公司所有员工的名字和姓氏 解算器和报告器的ID与员工的ID相关 我想写一个查询,给出问题和解决方案的描述,以及报告和解决问题的员工的名字和姓氏 这是我必须选择除解算器名称以外的所有需要的查询 SELECT P.ProblemID, P.Description AS

我需要一些关于SQL语句的帮助

我有树桌

  • 问题
  • 解决方案
  • 雇员
问题
表包含问题的
ID
、描述、报告人的
ID

解决方案
表包含解决方案的
ID
说明
,以及解决问题的人员的
ID

Employee
表包含一个
ID
,即公司所有员工的名字和姓氏

解算器和报告器的ID与员工的ID相关

我想写一个查询,给出问题和解决方案的描述,以及报告和解决问题的员工的名字和姓氏

这是我必须选择除解算器名称以外的所有需要的查询

SELECT        
   P.ProblemID, 
   P.Description AS ProblemDescription, 
   P.SolutionID,  
   P.ReporterID, 
   E.FirstName,
   E.LastName, 
   S.SolverID, 
   S.Description AS SolutionDescription
FROM            
   (tblProblem P 
LEFT OUTER JOIN 
   tblEmployee E ON P.ReporterID = E.EmployeeID) 
LEFT OUTER JOIN 
   tblSolution S ON P.SolutionID = S.SolutionID;
我真的希望有人能帮我


提前谢谢

您还需要加入标记为解算器的员工。遵循您的风格,但不知道确切的列名:

SELECT        
          P.ProblemID, 
          P.Description AS ProblemDescription, 
          P.SolutionID,

          P.ReporterID, 
          E.FirstName,
          E.LastName, 
          S.SolverID, 
          S.Description AS SolutionDescription,
          E2.FirstName as SolverFirstName,
          E2.LastName as SolverLastName


只需再次加入employee表,一次用于解算器,一次用于报告器:

SELECT        P.ProblemID, 
              P.Description AS ProblemDescription, 
              P.SolutionID,

              P.ReporterID, 
              RE.FirstName as ReporterFirstname,
              RE.LastName as ReporterLastname, 
              S.SolverID, 
              S.Description AS SolutionDescription,
              SE.FirstName as SolverFirstname,
              SE.LastName as SolverLastname
FROM

             ((tblProblem P LEFT OUTER JOIN 
              tblEmployee RE ON P.ReporterID = RE.EmployeeID) LEFT OUTER JOIN 
              tblSolution S ON P.SolutionID = S.SolutionID) LEFT OUTER JOIN 
              tblEmployee SE ON P.ReporterID = SE.EmployeeID

附言:我看见你用括号。您正在使用Access吗?如果是这样的话,我希望我做对了。

我确实在使用Access,您也做对了:)非常感谢您的帮助!
SELECT        P.ProblemID, 
              P.Description AS ProblemDescription, 
              P.SolutionID,

              P.ReporterID, 
              RE.FirstName as ReporterFirstname,
              RE.LastName as ReporterLastname, 
              S.SolverID, 
              S.Description AS SolutionDescription,
              SE.FirstName as SolverFirstname,
              SE.LastName as SolverLastname
FROM

             ((tblProblem P LEFT OUTER JOIN 
              tblEmployee RE ON P.ReporterID = RE.EmployeeID) LEFT OUTER JOIN 
              tblSolution S ON P.SolutionID = S.SolutionID) LEFT OUTER JOIN 
              tblEmployee SE ON P.ReporterID = SE.EmployeeID