MYSQL - 连接两个表

dat*_*ude 4 mysql sql concatenation

我有两张表如下:

    TABLE A                    TABLE B
 StuID | actid              FacID | actid
  3       12                  98      17
  5       17                  54      21
Run Code Online (Sandbox Code Playgroud)

我想列出参加活动17的每个人,包括学生和教师的名字.无论如何,我可以得到如下结果:

 id  | actid
 98     17
 5      17
Run Code Online (Sandbox Code Playgroud)

没有创建一个新表(通过使用表达式嵌套或派生关系)?

在actid上加入会产生类似的结果:

StuID  | FacID  | actid
 5        98        17
Run Code Online (Sandbox Code Playgroud)

我想我需要一种连接形式?

Thi*_*ilo 18

select * from table_a where actid = 17
union all
select * from table_b where actid = 17
Run Code Online (Sandbox Code Playgroud)

您可能(或可能不)需要对不唯一的ID执行某些操作,例如

select 'Student', table_a.* from table_a where actid = 17
union all
select 'Faculty', table_b.* from table_b where actid = 17
Run Code Online (Sandbox Code Playgroud)

  • 为了使 MySQL 满意,我必须将每个 SELECT 包裹在 () 中。 (2认同)