私は魅力のように機能する次のものを持っています。
SELECT d.decisionName, c.firstname, c.lastname, o.name AS organization_name, s.parent_session_id
FROM tblDecisions d
INNER JOIN tblSessions s ON s.decision_id = d.decisionid
INNER JOIN tblCounselors c ON s.counselor_ck = c.campusid
INNER JOIN tblCounselor_to_organization co ON co.counselor_id = c.counselorid
INNER JOIN tblOrganizations o ON o.organizationid = co.organization_id
AND s.start_time >= '2011-01-01 00:00:00'
AND s.is_complete = TRUE
ORDER BY s.start_time, s.last_name, s.first_name
フィールドparent_session_id
(整数) は、前のレコードのプライマリ ID を格納できます。それ以外の場合は、デフォルトで 0 になります。可能であれば、ネストされたクエリまたはサブクエリを次の目的で使用したいと考えています。
上記のすべてを取得しますが、parent_session_id フィールドでプライマリ ID が別の ID によって使用されている場合は、レコードを削除します。
複数のレコードがparent_session_idフィールドで同じレコードを参照している場合(
> 0
)、タイムスタンプによって最新のもののみを取得します(s.start_time DESC LIMIT 1
)
クエリをとてつもなく複雑にしない限り、これは不可能だと感じていますが、私のクエリスキルは、上記よりもはるかに深くなりません.