【发布时间】:2013-03-21 18:49:54
【问题描述】:
我有一个包含以下表格的 localDB 数据库:
UserProfile,其中包含:
UserId UserName
1 Adam
webpages_Roles,其中包含:
RoleID RoleName
1 user
2 admin
webpages_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 是否真的在运行两个选择并加入结果,可能是按行号?
【问题讨论】:
-
可能重复的问题是相关的,但远非完全重复。