php - 使用连接的mysql不同查询

标签 php mysql join mapping

我有一个复杂的数据库关系(对我来说很复杂)。从理论上讲,我认为这是一个很好的设计,但我现在的障碍是在尽可能少的查询中从中获取数据。这是我的数据库结构:

学生表: 一些字段,例如姓名、电话、电子邮件等。

students_requirements 表(映射表): 学生卡, requirement_id, 日期

需求表(属于需求类型): ID, requirement_type_id, 姓名

requirement_type 表(有很多要求): ID, 类型, 姓名,

好的,下面是一个如何使用它的例子。我可以构建需求类型。一个例子就像一个任务。每个任务都有多个要求。学生可以满足特定作业的要求,但不一定满足所有作业的要求。所以我想按学生查询所有作业。假设系统中输入了 50 个作业,而 jon smith 已经输入了其中 4 个作业的要求。我想通过 jon smith id 查询以找到他输入了任何要求的所有作业。

我希望这是有道理的。我唯一的猜测是使用连接,但老实说,我真的不太了解它们。

任何帮助都会很棒!

最佳答案

试试这个:

SELECT * FROM student_table, students_requirements_table,
requirements_table, requirement_type_table
WHERE student_table.name = "Jon Smith"
AND students_requirements_table.id = student_table.id
AND requirements_table.id = students_requirements_table.requirement_id
AND requirement_type_table.id = requirements_table.requirement_type_id;

检查表名是否准确,因为我不得不假设一些事情(例如您的某些表名中有下划线),并注意以上所有内容实际上应该是一长行 (但这使得它在这个页面上不可读,所以我将它分成多行)。

我目前没有 LAMP 装备设置,所以我无法模拟它来测试它,而且我已经有一段时间没有编写 MySQL 连接了,但我认为这是在正确的轨道上.

如果您需要使用 LEFT JOIN,请查看此页面:Left joins to link three or more tables .

关于php - 使用连接的mysql不同查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230582/

相关文章:

javascript - 获取从多个(1 到 4)派生的基数

php - 将数组键递增一个以提供更多功能

mysql - 如何使用 IN 数组过滤器连接三个表,但仍获取第三个表中的所有行

mysql - 在 SELECT [MYSQL] 中加入或选择

php - Html 代码正在打印而不是显示输出

php - 在 PHP 中从文件流创建 Zip

python - 改进 Django 查询

Mysql存储过程不以表名为参数

mysql - 为独立的 Spring Boot 应用程序设置 MySQL 数据库以在另一个设备中使用

Mysql Left Join 和 Sum 无法正确处理按月和年分组