在MYSQL中以列作为表名,另一列作为外键以列作为表名的查询

在MYSQL中以列作为表名,另一列作为外键以列作为表名的查询,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,img\u gallary(id、事件类型、事件名称、图像) 其中,event_type是表名,event_name是event_type字段之一(即表名的列) 如何根据事件名称及其id中的特定事件对事件进行分组 create table img_gallary ( id int primary key, event_type varchar(255), event_name varchar(255), image varchar(255)); insert into img_g

img\u gallary(id、事件类型、事件名称、图像)

其中,event_type是表名,event_name是event_type字段之一(即表名的列)

如何根据事件名称及其id中的特定事件对事件进行分组

create table img_gallary (
  id int primary key,
  event_type varchar(255),
  event_name varchar(255),
  image varchar(255));
insert into img_gallary values
  (1, 'Music', 'Summer Jazz', 'jazz23.jpg'),
  (2, 'Theatre', 'Hamlet', 'Booth_as_Hamlet.jpg'),
  (3, 'Music', 'City Rock', 'brass_at_cityrock.jpg'),
  (4, 'Music', 'Summer Jazz', 'summerj_miller.jpg');

create table music (
  event_name varchar(255) primary key,
  event_date date);
insert into music values
  ('City Rock', '2014-08-10'),
  ('Summer Jazz', '2014-09-13');

create table theatre (
  event_name varchar(255) primary key,
  event_date date);
insert into theatre values
  ('Hamlet', '2014-07-19');

select *
from img_gallary
natural join (
  select 'Music' as event_type, event_name, event_date
  from music
  union
  select 'Theatre' as event_type, event_name, event_date
  from theatre
) event
order by event_type, event_name;