我们说我有桌子:
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访问的数据库,没有别的。
提前致谢。
答案 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