我即将开始我网站的“数据审核”部分。这意味着什么?
基本上用户可以查看和更新他们提交给数据库的记录。
这是我第一次这样做,我猜我需要使用连接、选择?等等
所以我想知道您是否可以帮助我了解我将如何处理此查询的逻辑。我不想要代码,因为我想自己做,但逻辑是困扰我的地方。
这是我的数据库模式的图像,显示了关系等:
这是我想到的如何开始(伪代码):
-Get procedure row where procedure_id = posted value from previous page.
-Retrieve values from that row in procedure table.
-Get patient row that matches the foreign key value in procedure table.
-Get department row that matches the foreign key value in procedure table.
-Get procedure_name row that matches the foreign key value in procedure table.
-Get dosage row that matches the foreign key value in procedure table.
然而,在这一点之后,我对如何处理多对多 (n--> n) 关系表有点困惑,这是加入连接的地方吗?
我的链接表如何处理它们?
如果有比我想象的更简单的方法,请告诉我:)
资源或示例的链接将不胜感激。提前致谢
谢谢
保重!
最佳答案
这是对你的伪代码的查询:
SELECT
procedure.*,
patient.*,
department.*,
procedure_name.*,
dosage.*
FROM
procedure
INNER JOIN
patient
ON
patient.patient_id = procedure.patient_id
INNER JOIN
department
ON
department.department_id = procedure.department_id
INNER JOIN
procedure_name
ON
procedure_name.procedure_name_id = procedure.name_id
INNER JOIN
dosage
ON
dosage.dosage_id = procedure.dosage_id
WHERE
procedure.procedure_id = ?
您可以以完全相同的方式加入任何其他表格。如果您想要返回行,即使您要加入的表没有与查询其余部分的行匹配的行,请使用 LEFT OUTER JOIN
而不是 INNER JOIN
。如果有多行与当前行 (1:N/N:M) 匹配,您将获得与结果集中的对一样多的行。
如果您需要额外的指导/示例,您必须更加清楚您想要检索的内容以及您不理解的内容。
关于php - 在我的数据库中检索记录的逻辑? MySQL PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6879182/