Mysql 如何创建交叉连接的表,以便它们都与成员连接

Mysql 如何创建交叉连接的表,以便它们都与成员连接,mysql,sql,foreign-keys,ddl,create-table,Mysql,Sql,Foreign Keys,Ddl,Create Table,我的目的是使用这三个表并将它们连接在一起,因为它们共享一个外键(member_num)。我使用了自动增量,因此在某些点上它不在我的代码中 志愿者表: create Table Volunteer( member_num int not null auto_increment primary key, firstname varchar(20) not null, lastname varchar(20) not null, dateofbirth date not null, methodolo

我的目的是使用这三个表并将它们连接在一起,因为它们共享一个外键(member_num)。我使用了自动增量,因此在某些点上它不在我的代码中

志愿者表:

create Table Volunteer(
member_num int not null auto_increment primary key,
firstname varchar(20) not null,
lastname varchar(20) not null,
dateofbirth date not null,
methodology varchar(40) not null,
langspoken varchar(10) not null default 'English',
langread varchar(10) not null default 'English'
);
语言表(Read)

语言表(口语)

我正在努力,不确定如何将它们全部连接到一个表中,因为稍后我将对它们进行特定的查询

如果有人能帮助我,我不确定我是否需要使用联接或外键


任何帮助都会有帮助,最好。

在我看来,您没有为您的用例使用正确的数据结构
member_num
是所有三个表上的一个自动递增键,因此无法实际关联它们

相反,您希望表
志愿者阅读
志愿者说话
中的外键引用
志愿者
的主键(这些表中可以有代理主键):


在我看来,您没有为您的用例使用正确的数据结构
member_num
是所有三个表上的一个自动递增键,因此无法实际关联它们

相反,您希望表
志愿者阅读
志愿者说话
中的外键引用
志愿者
的主键(这些表中可以有代理主键):

create Table VolunteerRead(
    member_num int auto_increment primary key,
    lang varchar(50) default 'English'
);
create Table VolunteerSpeak(
    member_num int auto_increment primary key,
    lang varchar(50) default 'English'
);
create table volunteer_read(
    id int auto_increment primary key
    member_num int references volunteer(member_num),
    lang varchar(50) default 'english'
);

create table volunteer_speak(
    id int auto_increment primary key
    member_num int references volunteer(member_num),
    lang varchar(50) default 'english'
);