基于一个列名称连接三个不同的表

时间:2012-02-16 09:28:01

标签: mysql

table A
amount user_id
100     abc
200     cdf
300     def

table B
Idno    user_id
10        abc
202       def

table C
Idno    user_id
498      cdf

最终输出

Idno    user_id     amount
10        abc       100
202       def       200
498       cdf       300

我知道加入两张桌子

select A.amount,B.Idno,B.user_id from B inner join A on A.user_id=B.user_id;

但我的问题是如何在最终输出中显示的表中显示所有user_id的数量

1 个答案:

答案 0 :(得分:2)

这就是你想要的吗?

SELECT a.amount, t.Idno, t.user_id FROM table_a a
  JOIN (
    SELECT Idno, user_id FROM table_b
      UNION ALL
    SELECT Idno, user_id FROM table_c
  ) t
  ON a.user_id = t.user_id