从2个表中选择数据

时间:2017-02-25 15:30:52

标签: mysql sql

我有两张桌子:

tbl1 table

user_id amount
1       100
1       200

tbl2 table

user_id amount
1       900
1       800

我需要获得"金额的"此表中的列为某些user_id。

我可以通过2个查询来完成:

SELECT SUM(amount) AS sum1 FROM tbl1 WHERE user_id = 1

SELECT SUM(amount) AS sum2 FROM tbl2 WHERE user_id = 1

如何在1个查询中执行此操作?

输出应为:

sum1 sum2
300  1700

1 个答案:

答案 0 :(得分:1)

这是一种方法:

SELECT (SELECT SUM(amount) AS sum1 FROM tbl1 WHERE user_id = 1) as amount1,
       (SELECT SUM(amount) AS sum2 FROM tbl2 WHERE user_id = 1) as amount2;

如果您想为多个用户有效地执行此操作,您可以执行以下操作:

SELECT (SELECT SUM(amount) FROM tbl1 t WHERE t.user_id = u.user_id) as amount1,
       (SELECT SUM(amount) FROM tbl2 t WHERE t.user_id = u.user_id) as amount2
FROM (SELECT 1 as user_id UNION ALL
      SELECT 2 as user_id
     ) u

如果您在tbl1(user_id, amount)tbl2(user_id, amount)上有索引,那么这将非常有效。

相关问题