繁体   English   中英

两个具有相同表的内连接

[英]Two inner joins with same tables

我有这个问题,我已经工作了一段时间,我只是无法弄清楚我的查询有什么问题。 今天,我终于离得更近了,现在我觉得我很接近并且离成功不太远,但是我需要你的帮助才能发现这个问题中的错误,因为我觉得我已经瞎了眼。 这是我得到的错误:

“FROM子句中的对象”webpages_UsersInRoles“和”webpages_UsersInRoles“具有相同的公开名称。使用相关名来区分它们。”

SELECT * FROM Users 
INNER JOIN webpages_UsersInRoles 
ON webpages_UsersInRoles.UserId = Users.UserId 
INNER JOIN webpages_UsersInRoles 
ON webpages_UsersInRoles.RoleId = webpages_Roles.RoleId
WHERE Users.UserId = 1

先感谢您!

您必须为表使用alisas:

SELECT * FROM Users 
INNER JOIN webpages_UsersInRoles w1 ON w1.webpages_UsersInRoles.UserId = Users.UserId 
INNER JOIN webpages_UsersInRoles w2 ON w1.webpages_UsersInRoles.RoleId = w2.webpages_Roles.RoleId
WHERE Users.UserId = 1

我认为以下是您需要的最终查询。 为了清楚起见,我使用别名为TAB1,TAB2 and TAB3 ,以避免混淆。 根据需要进行更改。

SELECT * FROM Users TAB1
INNER JOIN webpages_UsersInRoles  TAB2
ON TAB2.UserId = TAB1.UserId 
INNER JOIN webpages_Roles TAB3
ON TAB2.RoleId = TAB3.RoleId
WHERE TAB1.UserId = 1

Btw,JUST FOR INFO ....可能你得到The objects "webpages_UsersInRoles" and "webpages_UsersInRoles" in the FROM clause have the same exposed names. Use correlation names to distinguish them.The objects "webpages_UsersInRoles" and "webpages_UsersInRoles" in the FROM clause have the same exposed names. Use correlation names to distinguish them. ”从原始查询中提到的行中的错误:

SELECT * FROM Users 
INNER JOIN webpages_UsersInRoles 
ON webpages_UsersInRoles.UserId = Users.UserId 
INNER JOIN webpages_UsersInRoles 
ON webpages_UsersInRoles.RoleId  -----> Not able to identify which webpages_UsersInRoles  is being called (First inner join or second inner join)
  = webpages_Roles.RoleId
WHERE Users.UserId = 1

我看到3个表... Userswebpages_UsersInRoleswebpages_Roles

只有2个被叫。

webpages_Roles ??

也许在第二次加入中使用webpages_Roles

SELECT * FROM Users 
INNER JOIN webpages_UsersInRoles 
ON webpages_UsersInRoles.UserId = Users.UserId 
INNER JOIN webpages_Roles 
ON webpages_UsersInRoles.RoleId = webpages_Roles.RoleId
WHERE Users.UserId = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM