【发布时间】:2013-04-12 22:16:17
【问题描述】:
我对 SQL 很陌生,我可以通过搜索回答大多数其他问题,但这个问题似乎更难找到类似的东西。我确实看到 this 和 this 看起来很相似,但我无法找到答案,尽管我认为它应该很简单。
为了简化我的数据库,我正在尝试将我的两个表连接到一个视图中。
一个表 (a_main) 有一个用户 ID (UID) 和他们的用户名 (name) 之间的映射 第二个表(log_points)有许多列,包括两个用户(user1 和 user2)。这两个用户由用户 ID 标识,但我想在视图中显示他们的用户名。
例子
SELECT name, UID FROM a_main
返回类似的东西
Jeff 1234
SELECT date, user1, user2 FROM log_points
返回
2013-03-22 1222 1234
我希望视图按用户名而不是 id 返回用户。
如果只有一个用户,我可以直接加入
SELECT date, a_main.name FROM log_points
INNER JOIN a_main ON log_points.user1 = a_main.UID
但我不知道如何将 user2 也加入 a_main.UID。
任何建议将不胜感激!我正在使用 MySQL。
编辑找到答案here。
SELECT t1.name AS person1, t2.name AS person2
FROM log_points t
INNER JOIN a_main t1 ON t1.UID = t.user1
INNER JOIN a_main t2 ON t2.UID = t.user1;
【问题讨论】:
-
有 2 个用户 1222、1234,它们的行为类似于日志点表中的列...对吗?
-
我想通了,我找到了一个解决它的相关问题-
-
@Jeff-P 那么您可能应该告诉我们解决方案是什么 - 因为当其他人遇到与您相同的问题时。 ;-)
-
我在 EDIT 之后把它放在了底部。我不确定如何添加格式以使其突出显示并格式化为代码
-
你可以回答你自己的问题 - 这是允许的blog.stackoverflow.com/2011/07/…