需要SQL语句的帮助来合并2个表

时间:2019-07-12 08:05:14

标签: sql

大家好,

我需要一些帮助,以使用SQL SELECT ALL组合到2个表

表帐户

ID| USNM | PSSWRD | DEPT | TYPE | FNAME | LNAME<br>
 1 | user1 | 1234 | fin  | user |  Juan | Cruz<br>
2  | user2 | 5678 | it | sup   |John | Cross

表adminAccounts

ID | USNM | PSSWRD | DEPT | TYPE | FNAME | LNAME <br>
1  | admin| admin  | all  | admin| Boss  | Owner <br>

连接2个表后所需的输出

表帐户

ID | USNM | PSSWRD | DEPT | TYPE | FNAME | LNAME <br>
1  | user1| 1234   | fin  | user |  Juan | Cruz <br>
2  | user2| 5678   | it   | sup  |  John | Cross <br>
3  | admin| admin  | all  | admin| Boss  | Owner <br>

对于这种SQL语句,我真的一无所知,因为一些在线参考将2个表和不同的列组合在一起。我真的很感谢为这个基本问题提供用于选择2个表的SQL语句的帮助。

我目前正在使用具有每个部门帐户登录功能的库存系统。

使用(OleDbDataAdapter da =新的OleDbDataAdapter(“ SELECT * FROM accounts”,con))

4 个答案:

答案 0 :(得分:1)

您可以使用工会

select ID,USNM ,PSSWRD ,DEPT ,TYPE , FNAME ,LNAME from accounts
union all
select ID,USNM ,PSSWRD ,DEPT ,TYPE , FNAME ,LNAME from adminAccounts

答案 1 :(得分:1)

UNION [ALL]似乎是显而易见的解决方案,但它不会重新设置id列。

因此,您还需要row_number()

select row_number() over (order by which, id) as id,
       USNM, PSSWRD, DEPT, TYPE, FNAME, LNAME
from ((select t1.*, 1 as which
       from table1 t1
      ) union all
      (select t2.*, 2 as which
       from table2 t2
      )
     ) t;

答案 2 :(得分:0)

尝试联合选择。

SELECT * FROM t1

UNION

SELECT * FROM t2

联合将两个选择语句的结果组合在一起。重要的是它们必须具有相同的列。参见W3 Schools SQL Union

答案 3 :(得分:0)

这里是记住此的简单方法:

JOIN将另一个表中的列添加到查询结果中

一个UNION将另一个表中的行添加到查询结果中

enter image description here enter image description here