人の重複をどのように排除できますか。
SELECT Persons.Id, Activity.Activity, Activity.Description, Activity.StartDate, Activity.EndDate
FROM Activity
INNER JOIN Login_Activity ON Activity.ActivityId = Login_Activity.ActivityId
INNER JOIN Persons ON Login_Activity.LoginId = Persons.LoginId
AND Activity.Description IS NOT NULL ORDER BY Persons.Id DESC
Person 1 - Activity 1
Person 1 - Activity 2
Person 2 - Activity 1
Person 3 - Activity 2
Person 3 - Activity 3
編集: この結果が欲しいです。
Person 1 - Activity 1
Person 2 - Activity 1
Person 3 - Activity 3
アクティビティテーブルにはいくつかの時刻表も含まれているため、すべてのアクティビティの最後の日時のみが必要です。その問題については、ORDER DESC 関数を使用するだけです。しかし、重複を排除する必要もあります。
EDIT2:SQLクエリを使用して最大値をソートし、PHP配列を使用して人物を1回だけ表示する場合。
mainArray = array(
'person' => '1', 'Activity' => 'abc',
'person' => '1', 'Activity' => 'cba',
'person' => '2', 'Activity' => 'abc',
'person' => '2', 'Activity' => 'cba',
'person' => '3', 'Activity' => 'cba'
);