自从我使用数据库已经好几年了,我感到很难过。这通常是最容易受伤的东西,我希望有人可以提供帮助。
我有一张学生姓名表。我有一个父母姓名表(母亲和父亲)。我有另一个表定义他们作为母亲和父亲的关系,另外还有另一个表定义跟踪所有主键及其关系的表。我已经达到了我记得如何加入的程度,但一次只能加入一条记录。目前我在Access 2010中有一个查询,它打印两行,如下所示:
Student1 Name | Parent1 Name | Parent1 Cell
Student1 Name | Parent2 Name | Parent2 Cell
Student2 Name | Parent1 Name | Parent1 Cell
etc...
我想完成以下任务:
Student1 Name | Parent1 Name | Parent2 Name | Parent1 Cell | Parent2 Cell
Student2 Name | Parent1 Name | Parent2 Name | Parent1 Cell | Parent2 Cell
etc...
我的SQL语句如下:
SELECT Student.FirstName, StudentToPersonMap.RelationshipType, Person.FirstName,
Person.CellPhone, FROM Student INNER JOIN (Person INNER JOIN StudentToPersonMap ON
Person.PersonID = StudentToPersonMap.PersonID) ON Student.StudentID =
StudentToPersonMap.StudentID WHERE (((StudentToPersonMap.RelationshipType)=1 Or
(StudentToPersonMap.RelationshipType)=2));
欢迎通过Access查询或SQL查询提出任何建议!谢谢你的阅读!
答案 0 :(得分:0)
您可以使用子查询。以下是基于SQL Server的另一个系统的示例,但您可以在应用程序中使用相同的理论
SELECT tblProcedures.Procedure_ID,
Procedure_name,
tReviewer_1.Proc_reviewer_name,
tReviewer_2.Proc_reviewer_name
FROM tblProcedures
INNER JOIN (select Procedure_ID, Proc_reviewer_name
from tblProc_reviewers
INNER JOIN tblProc_reviews_req
ON tblProc_reviews_req.Proc_reviewer_ID=tblProc_reviewers.Proc_reviewer_ID
WHERE tblProc_reviewers.Proc_reviewer_ID=1) as tReviewer_1
ON tReviewer_1.Procedure_ID=tblProcedures.Procedure_ID
INNER JOIN (select Procedure_ID, Proc_reviewer_name
from tblProc_reviewers
INNER JOIN tblProc_reviews_req
ON tblProc_reviews_req.Proc_reviewer_ID=tblProc_reviewers.Proc_reviewer_ID
WHERE tblProc_reviewers.Proc_reviewer_ID=2) as tReviewer_2
ON tReviewer_1.Procedure_ID=tblProcedures.Procedure_ID
在访问权限中,你可能最好做两个名为qryStudent_mothers_details的查询和一个名为qryStudent_fathers_details的查询。
然后你可以将它们加入你的学生桌并从那里开始。