0
この2つのクエリをマージできるかどうかを知りたいのですが、クエリの内容について少し説明します。php mysql query join merge
これは私のテーブル構造である:
- ユーザー:ID、名前
- usersFacebookFriends:ID、説明、日付、時間
- activitiesUsers:ID、uidが、
- 活動friendUid IDを、 activityId、uid
私たちはユーザーを持っているので、ユーザーは友達がいて、ユーザーはアクティビティを作成でき、複数のユーザーが行動することができますivities。それがはっきりしていることを望む
SELECT DISTINCT
A.description, A.date, A.time
FROM
usersFacebookFriends UF
JOIN
activitiesUsers AF
ON
AF.uid = UF.friendUid
JOIN
activities A
ON
A.id = AF.activityId
WHERE
UF.uid = :uid
クエリのuidパラメータは、明らかにユーザーIDです。すべての活動を通じ
foreach($activities as $activity){
// SELECT
// U.id, U.name, U.firstName, U.level
// FROM
// activitiesUsers AF
// JOIN
// users U
// ON
// U.id = AF.uid
// WHERE
// AF.activityId = ?
}
だから、そのちょっと重、私はまだループ彼らは最初のクエリでフェッチされ、その後、私はすべてのユーザーを取得した後、それが可能である:そのクエリの実行後、私は現在、これを行いますこれらのクエリをマージするので、すべてのアクティビティを取得した後にループする必要はありません。ヘルプ
動作していないため、複数のユーザーが1つのアクティビティを検出できます。 – randomKek
@MikeVercoelen「働いていない」とはどういう意味ですか? – dgw
クエリが機能していますが、私が言ったように、アクティビティには複数のユーザーがリンクすることができます。その結果、クエリを実行すると多くの結果が得られます。 – randomKek