我有两个桌子

1. Table A
userId
userFirstName
UserLastName

2. Table B
createdByUserId
updatedByUserId
deletedByUserId
tableName
tableCreateDate


我想对表B进行选择(包括createByUserID,updatedByUserId和DeletedByUserId),并在一个查询中获取表A的userFirstName和userLastName(根据已获取的userID提取userName)?一个嵌套查询有可能吗?或它确实需要两个查询,一个查询获取userId,第二个查询获取userdetail。

最佳答案

如果我了解您想要什么,您可以加入3次。 (我选择“左连接”,以防某些ID为空)

Select
      b.tableName,
      b.tableCreateDate,
      CUser.userFirstName CreateUserFirstName,
      CUser.UserLastName  CreateUserLastName ,
      CUser.userFirstName UpdateUserFirstName,
      UUser.UserLastName  UpdateUserLastName ,
      UUser.userFirstName DeleteUserFirstName,
      DUser.UserLastName  DeleteUserLastName
FROM
    TableB b
    LEFT JOIN TableA CUser
    ON b.createdByUserId = CUser.UserId
    LEFT  JOIN TableA UUser
    ON b.updatedByUserId= UUser.UserId
    LEFT  JOIN TableA DUser
    ON b.updatedByUserId= DUser.UserId

关于mysql - SQL有关嵌套选择的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10458318/

10-11 01:38