Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何组合两个表中的两个选项?_Php_Mysql - Fatal编程技术网

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
where
sm\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_电子邮件来自表成员。。如果有其他人让我知道…你说得对,第一次选择让我困惑,但现在我明白了。。。两个都在工作,答案被接受