有关嵌套选择的SQL问题

时间:2012-05-05 02:28:08

标签: mysql sql mysqli

我有两张桌子

1. Table A
userId
userFirstName
UserLastName

2. Table B
createdByUserId
updatedByUserId
deletedByUserId
tableName
tableCreateDate

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

1 个答案:

答案 0 :(得分:2)

如果我明白你想要什么,你可以加入三次。 (我选择了Left Joins以防一些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