次の状況を達成するためのクエリの作成方法を理解するのに少し苦労しています。ユーザーが自分のイベントと活動 (2 つの異なるテーブル) を、所属する組織のイベント/活動と共に日付順に並べ替えて表示できるようにしたい
イベント テーブル
eventID | eventTitle | eventBy | eventDate
1 Event 1 1 2012/10/11
2 Event 2 2 2012/10/08
3 Event 3 3 2012/10/05
活動表
postID | postTitle | postBy | postDate
1 activity 1 1 2012/10/07
2 activity 2 2 2012/10/09
orgMembers テーブル
orgID | userID
2 1 //userID 1 is a member of groupID 2
とにかく、ユーザーID 1がページを表示している場合、結果を次のように表示しようとしています
Title By Date
Activity 1 1 2012/10/07
Event 2 2 2012/10/08
Activity 2 2 2012/10/09
Event 1 1 2012/10/11
このクエリの結果、私の投稿のみが表示され、私がメンバーである組織も表示されません。
select eventTitle as title, eventID as ids, eventBy as byUser, users.username, eventDate as date from events
inner join users on users.userid = events.eventBy
where eventBy in (select distinct g1.userID from orgMembers g1
inner join orgMembers g2 on g1.orgID = g2.orgID
where g2.userID = '$id')
or eventBy = '$id'
UNION
select postTitle as description, postID as ids, postBy as byUser, users.username, postDate as date from posts
inner join users on users.userid = posts.postBy
where postBy in (SELECT distinct g1.userID FROM orgMembers g1
inner join orgMembers g2 on g1.orgID = g2.orgID
where g2.userID = '$id')
or postBy = '$id'
Order BY date"