次のクエリが動作しますが、今は止まっています。私はさらに2つのフィルタを追加したいと思いますし、これをどうやって行うのかについてはあまりよく分かりません。テーブル関係では、私は関係というフィールドを持っています。返された父親のデータに、そのフィールドに父親か義父がいるかどうかを確認する必要があります。同様に私は母親のデータがStepmother、motherによってフィルタリングされる必要があります。もちろん、生徒には父親や母親がいない可能性がありますが、親が1人いる場合はデータが返されます。これまでクエリにフィルタを追加する
SELECT DISTINCT p.pk_PupilID, pn.Title, pn.Forename, pn.Surname, pn.PreferredForename, father.pk_PersonID, father.Title, father.Forename, father.Surname, mother.pk_PersonID, mother.Title, mother.Forename, mother.Surname, pn.DoB, pn.Gender, h.House, p.Form, p.BoardingStatus, p.Tutor, h.Housemaster , f.Salutation
FROM Family AS f
LEFT JOIN RELATION AS rpupil ON f.pk_FamilyID = rpupil.fk_FamilyID
LEFT JOIN PUPIL AS p ON rpupil.fk_PersonID = p.pk_PupilID
LEFT JOIN PERSON AS pn ON p.pk_PupilID = pn.pk_PersonID
LEFT JOIN HOUSE AS h ON p.fk_DepartmentID = h.fk_DepartmentID
LEFT JOIN RELATION AS rfather ON p.pk_PupilID = rfather.fk_PersonID
LEFT JOIN PERSON AS father ON rfather.fk_RelatedPersonID = father.pk_PersonID
LEFT JOIN RELATION AS rmother ON p.pk_PupilID = rmother.fk_PersonID
LEFT JOIN PERSON AS mother ON rmother.fk_RelatedPersonID = mother.pk_PersonID
WHERE p.pk_PupilID IN('" & pks & "')
あなたはあなたの 'WHERE'節によって' LEFT JOIN'を殺しています。これは効果的に「INNER JOIN」に変換されます。 'LEFT JOIN'の右側の表(または' RIGHT JOIN'の左側の表)のそれ以上のフィルタリングは、 'ON'節条件に追加する必要があります。 – Siyual