用于从4个不同表中获取数据的SQL查询
我有四个表,我需要从一个带有where条件的表中获取数据,并且输出包含来自三个不同表的ID,使用这些ID需要获取它们的名称用于从4个不同表中获取数据的SQL查询,sql,mysql-5.5,Sql,Mysql 5.5,我有四个表,我需要从一个带有where条件的表中获取数据,并且输出包含来自三个不同表的ID,使用这些ID需要获取它们的名称 Company: CompanyID - PK CompanyName CompanyDescription Users: UserID - PK FirstName LastName Email TaskDetails: TaskID - PK CompanyID - FK of Company.CompanyID TaskStatus: TaskStatusID
Company:
CompanyID - PK
CompanyName
CompanyDescription
Users:
UserID - PK
FirstName
LastName
Email
TaskDetails:
TaskID - PK
CompanyID - FK of Company.CompanyID
TaskStatus:
TaskStatusID - PK
TaskID - FK of TaskDetails.TaskID
Status
Details
CreatedBy - FK of Users.UserID
UpdatedBy - FK of Users.UserID
CreatedAt
UpdatedAt
需要查询才能返回以下内容:
公司名称、电子邮件、状态、详细信息、CreatedAt、UpdatedAt以及TaskStatus表TaskStatus.UpdatedBy上的where条件=1和TaskStatus.UpdatedAt>'2013-08-01'和TaskStatus.status='COMPLETED'
MySQL文档中的连接语法:@Phil/@RFL请检查下面的查询是否正确<代码>选择CM.CompanyName作为CompanyName,选择U.Email作为用户,选择TS.Status作为Status,选择TS.Comments作为Comments,选择TS.CreateDate作为CreateDate,TS.UpdateDate作为UpdateDate从TaskStatus作为TS LEFT JOIN TaskDetails作为TD上的TD.TaskID=TS.TaskID作为CM上的CM离开加入公司CM.CloudID=TD.CloudID作为U上的U离开加入用户U.UserID=TS.UpdatedBy其中TS.CreateDate>'2013-08-01'和TS.UpdatedBy=1和TS.Status='COMPLETED'组,通过CM.CompanyName,U.电子邮件发送代码>
Select CM.CompanyName as CompanyName, U.Email as User, TS.Status as Status, TS.Comments as Comments, TS.CreateDate as CreateDate, TS.UpdateDate as UpdateDate
FROM
TaskStatus as TS
LEFT JOIN TaskDetails as TD ON TD.TaskID = TS.TaskID
LEFT JOIN Company as CM on CM.CloudID = TD.CloudID
LEFT JOIN Users as U on U.UserID = TS.UpdatedBy
WHERE
TS.CreateDate>'2013-08-01' and TS.UpdatedBy!=1 and TS.Status='COMPLETED'
GROUP by CM.CompanyName, U.Email;