0

我想将 2 个相同的表合并到一个表中并区分用户。2张桌子看起来像这样:

Table1
**************
id, user, total
1, 1, 7
2, 2, 10
3, 3, 14


Table2
**************
id, user, total
1, 1, 4
2, 2, 7
3, 3, 3

我想要这个结果:

user, total1, total2
1, 7, 4
2, 10, 7
3, 14, 3

SQL 查询应该是什么样子?

4

1 回答 1

4

您将需要列JOIN上的表格user

select t1.user,
  t1.total,
  t2.total as total2
from table1 t1
inner join table2 t2
  on t1.user = t2.user

请参阅带有演示的 SQL Fiddle

如果您在学习JOIN语法方面需要帮助,这里有一个很好的 JOIN 可视化解释(由Jeff Atwood编写)。

INNER JOIN语法将返回两个表之间匹配的所有行。

如果要添加另一个表,则只需包含另一个JOIN. 根据您的评论,您将使用:

select t1.user,
  t1.total,
  t2.total as total2,
  t3.department
from table1 t1
inner join table2 t2
  on t1.user = t2.user
inner join table3 t3
  on t1.user = t3.user
于 2013-03-09T22:44:07.307 回答