我有一个包含以下表格的 localDB 数据库:
UserProfile,其中包含:
UserId UserName
1 Adam
pages_Roles,其中包含:
RoleID RoleName
1 user
2 admin
pages_UsersInRoles,有两列(UserId、RoleId),为空。
我想要一个查询按名称将用户添加到按名称的角色中。找出要插入的内容,如果我运行:
SELECT UserId, RoleID
FROM UserProfile, webpages_Roles
WHERE UserProfile.UserName = 'Adam'
OR webpages_roles.RoleName = 'admin';
我明白了:
UserId RoleId
1 2
1 1
这是有道理的;这是一个交叉连接。但我基本上只想一次运行两个单独的选择并将它们粘在一起。我试过这个:
SELECT UserId, RoleID
FROM UserProfile, webpages_Roles
WHERE UserProfile.UserName = 'Adam'
AND webpages_roles.RoleName = 'admin';
它奏效了;我得到了 UserId 1 和 RoleId 2。但我不明白“和”;这不是把苹果比作橘子吗?不应该是语法错误吗?localDB 是否实际上运行两个选择并加入结果,也许是行号?