【发布时间】:2013-11-13 16:28:37
【问题描述】:
在 mysql 数据库中,我存储了 5 个表。我正在使用 php 来存储和检索数据。我想以链接的方式检索/回显/显示这 5 个表的信息。我有academy_id 作为每个表上的外键。每个学院都有一个联系人。一些学院可能共用同一个联系人。但不知道如何展示每个学院的独特信息。如何通过 php/mysql 选择查询显示这些值?
Academy Name | MOU_ID | Academy_ID | STATUS | Academy Created | Course Name | Course Start Date | Instructor First Name | Contact First Name
表格
CREATE TABLE IF NOT EXISTS `academies` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(25) NOT NULL,
`mou_id` int(11) default NULL,
`academy_id` int(11) NOT NULL,
`status` enum('INACTIVE','ACTIVE') NOT NULL default 'ACTIVE',
`created_date` date NOT NULL
PRIMARY KEY (`id`)
);
INSERT INTO `courses` (`course_id`, `course_name`) VALUES
(1, 'MATH'),
(2, 'ENGLISH'),
(3, 'BIOLOGY'),
CREATE TABLE IF NOT EXISTS `academy_courses` (
`unique_id` int(11) NOT NULL auto_increment,
`academy_id` int(11) NOT NULL,
`course_id` int(11) NOT NULL,
`start_date` date default NULL,
PRIMARY KEY (`unique_id`),
KEY `course_id` (`academy_id`,`course_id`)
);
CREATE TABLE IF NOT EXISTS `instructors` (
`instructor_id` int(11) NOT NULL auto_increment,
`academy_id` int(11) NOT NULL,
`instructor_fname` varchar(50) NOT NULL
PRIMARY KEY (`instructor_id`),
KEY `academy_id` (`academy_id`)
);
CREATE TABLE IF NOT EXISTS `main_contact` (
`contact_id` int(11) NOT NULL auto_increment,
`academy_id` int(11) NOT NULL,
`contact_fname` varchar(50) NOT NULL,
PRIMARY KEY (`contact_id`),
KEY `academy_id` (`academy_id`)
);
CREATE TABLE IF NOT EXISTS `main_contact_bridge` (
`academy_id` int(11) NOT NULL,
`contact_id` int(11) NOT NULL,
PRIMARY KEY (`contact_id`,`academy_id`),
KEY `academy_id` (`academy_id`)
);
【问题讨论】:
-
是你想展示的每一门课程吗?
-
您缺少课程表吗?
-
您想要加入,在这种情况下,专用视图可能是个好主意。 dev.mysql.com/doc/refman/5.0/en/views.html
-
@FilipeSilva 我没有包含
course表,因为它只显示了可供选择的课程列表。academy_courses存储从courses中选择的课程 -
@Code_Ed_Student。是的,但不是课程名称。您可能应该在讲师和课程之间建立某种联系。否则,这些查询会给你很多重复的结果。并解释联系表与其余部分的联系是什么