我对SQL很陌生,大多数我通过搜索都能够回答的其他问题,但是这似乎很难找到类似的东西。我看到this和this看起来很相似,但我无法找到答案,但我认为它应该很简单。如何将一个表中的多个列连接到另一个表中的列
为了简化我的数据库,我试图将两个表连接到视图中。
一个表(a_main)在用户ID(UID)和他们的用户名(名称)之间有一个映射 第二个表(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返回用户。
如果它只是一个用户,我可以做一个简单的JOIN
SELECT date, a_main.name FROM log_points
INNER JOIN a_main ON log_points.user1 = a_main.UID
,但我无法弄清楚如何也加入到用户2 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,那么你应该告诉我们解决方案是什么 - 当别人有与你的问题相同的问题时。 ;-) – Darwind