Php 如何组合两个表中的两个选项?
这是我的数据库模式:Php 如何组合两个表中的两个选项?,php,mysql,Php,Mysql,这是我的数据库模式: CREATE TABLE `members` ( `m_id` int NOT NULL AUTO_INCREMENT, `m_name` varchar(355), `m_email` varchar(20) UNIQUE, PRIMARY KEY (`m_id`) ); CREATE TABLE `schools` ( `s_id` int NOT NULL AUTO_INCREMENT, `s_name` varchar(355) ); C
CREATE TABLE `members` (
`m_id` int NOT NULL AUTO_INCREMENT,
`m_name` varchar(355),
`m_email` varchar(20) UNIQUE,
PRIMARY KEY (`m_id`)
);
CREATE TABLE `schools` (
`s_id` int NOT NULL AUTO_INCREMENT,
`s_name` varchar(355)
);
CREATE TABLE `schools_members` (
`sm_id` int NOT NULL AUTO_INCREMENT,
`sm_school_id` int NOT NULL,
`sm_member_id` int NOT NULL,
FOREIGN KEY (sm_school_id) REFERENCES schools(s_id),
FOREIGN KEY (sm_member_id) REFERENCES members(m_id)
);
我需要按给定的学校id($schoolId
)显示所选学校的所有成员。因此,我假设查询将涉及学校成员
和成员
我相信逻辑是:从表schools\u members
中选择所有sm\u member\u id
wheresm\u school\u id
,然后选择m\u name
和
m_email
针对上一次查询结果中表members
中的每个m_id
(成员id)
这不是必需的,但现在我很好奇是否要将表
schools
中的s_name
(学校名称)加入到这个结果中,以便每个成员也显示学校名称?您可以在学校成员和成员之间使用联接
select m.m_name, m.m_email
from schools_members sm
inner join members m ON m.m_id = sm.sm_member_id
where sm.sm_school_id = Your_value
学校名称呢
select m.m_name, m.m_email, s.s_name
from schools_members sm
inner join members m ON m.m_id = sm.sm_member_id
inner join schools s on s.s_id = sm.sm_school_id
where sm.sm_school_id = Your_value
是的,这是一个JOIN@Randy你能帮我查询一下吗?我不能和乔伊斯交谈<代码>选择m.m\u id、m.m\u名称、m.m\u成员的电子邮件m内部加入学校成员sm上sm.sm\u成员id=m.m\u id,其中sm.sm\u学校id=?@Dharman我现在已经删除了m.m\u名称,m.m\u电子邮件应该来自表成员,并且您在“membres”上有一个键入。为了让我接受你的回答,请修正。。。我已经更改了m_电子邮件(而不是m_电子邮件)和成员而不是membres。。。那么m是members表的别名。。因此,m.m_名称和m.m_电子邮件来自表成员。。如果有其他人让我知道…你说得对,第一次选择让我困惑,但现在我明白了。。。两个都在工作,答案被接受