下表之间有很多关系:
create table instructors
(i_id int not null identity(1,1) primary key,
i_name varchar(50), etc...)
create table members
(
m_id int not null identity(1,1) primary key,
m_name varchar(50, etc...))
create table schedule
(sch_id int not null identity(1,1) primary key,
sch_session varchar(10))<BR>
-- session is(morning, afternoon, evening)<br>
贝娄是我的联络表
create table Ins_Mem_Sch
(ins_mem_sch_id int not null identity(1,1) primary key,
i_id int not null foreign key references instructors(i_id),
m_id int not null foreign key references members(m_id),
sch_id int not null foreign key references schedules(sch_id)
)
我想知道我到目前为止做了什么是正确的,其次我试图通过查询加入他们,但我不能,也许是因为我没有练习加入多对多的关系,我不是一个完美的程序员,所以我想要一个连接查询来从所有表中获取数据。 非常感谢你的帮助 的问候,
答案 0 :(得分:0)
表格看起来很好,上一张表Ins_Mem_Sch
不需要主键ins_mem_sch_id
现在加入这些表格非常简单。考虑如果表Ins_Mem_Sch
中有i_id , m_id and sch_id
行,您可以使用以下类型的联接
(我提供了MYSQL示例,因为您使用MYSQL标记了问题)
select
i.i_name,
m.m_name,
s.sch_session
from
Ins_Mem_Sch ims
inner join instructors i on i.i_id = ims.i_id
inner join members m on m.m_id = ims.m_id
inner join schedule s on s.sch_id = ims.sch_id
以上只是列出与所有表匹配的数据的示例。 在许多其他情况下,您可能需要根据要求获取数据,而不知道这些数据很难评论。
答案 1 :(得分:0)
即使您的要求不明确,但您可以在查询中使用联接,如下所示:
SELECT
DISTINCT ins.i_name,mmb.m_name,sch.sch_session
FROM Ins_Mem_Sch ims
JOIN instructors ins ON ims.i_id=ins.i_id
JOIN members mmb ON mmb.m_id=ims.m_id
JOIN `schedule` sch ON sch.sch_id=ims.sch_id
WHERE your_col='your_value';