如何从一个表或另一个表中获取相同类型的行以及有关该表的信息

时间:2016-03-05 19:47:20

标签: mysql sql go mariadb

我们说我有桌子:

create table people ( 
    human_id bigint auto_increment primary key, 
    birthday datetime );

create table students ( 
    id bigint auto_increment primary key, 
    human_id bigint unique key not null, 
    group_id bigint not null );

create table teachers ( 
    id bigint auto_increment primary key, 
    human_id bigint unique key not null, 
    academic_degree varchar(20) );

create table library_access ( 
    access_id bigint auto_increment primary key, 
    human_id bigint not null, 
    accessed_on datetime );

现在我想显示有关图书馆访问的信息,以及是学生还是教师的信息(然后是与表格相对应的ID)(让我们说我想要{{1}以惯用的方式。

如何构建查询(如果已部署此类数据库)以及解决该问题的更好和更惯用的方法(如果到目前为止尚未部署)。

MariaDB 5.5,Go访问的数据库,没有别的。

提前致谢。

2 个答案:

答案 0 :(得分:0)

不查看您的表格或任何关于您想要在select语句中返回的内容的想法:

opacity:

答案 1 :(得分:0)

您说您需要知道数据来自哪个表。您可以使用union all

select la.access_id, s.id, 'Students' as source_table
from library_access la 
    join students s on la.human_id = s.human_id
union all
select la.access_id, t.id, 'Teachers' as source_table
from library_access la 
    join teachers t on la.human_id = t.human_id