首页 > 解决方案 > 如何在一个查询中包含三个不同的表数据

问题描述

(columns name)
b_Users = id,users_id,ac_num,bills
r_Users = id,users_id,ac_num,bills

f_users = id,users_id,name,address

f_users table:
id ----users_id---- name ---- address
1         12/1      A         ad1
2         13/2      B         ad2
3         14/1      C         ad3

b_Users table: 
id ---- users_id ---- ac_num ---- bills
1       12/1           1234         10$
2       14/1           1235         12$

r_Users table:     
id ---- users_id ---- ac_num ---- bills
1       13/2           1238         19$

我要选择 (users_id,name,address,ac_num,bills)

我使用了加入,但显示的是空字段。我不知道为什么。

标签: mysqlsqldatabaseselectjoin

解决方案


我会查询一个union allbetween b_usersr_users然后加入users它:

SELECT f.users_id, name, address, ac_num, bills
FROM   (SELECT b.users_id, ac_num, bills
        FROM   b_users b
        UNION ALL
        SELECT r.users_id, ac_num, bills
        FROM   r_users r) t
JOIN  f_users f on f.users_id = t.users_id

推荐阅读