私は、さまざまなレッスン(学生のクイズから)で学生の成績を保存するために使用されるワードプレスサイトを持っています。私は特定のグループ(buddypressグループを使用)のすべての生徒と各レッスンの生徒のレッスンをすべて取り出すクエリを作成しようとしています。値が「グレード」または存在しない場合の結果を取得
私はこのクエリを作成しました:
SELECT u.display_name, p.post_title, cm.meta_value
FROM wp_users u
JOIN wp_bp_groups_members gm
ON u.ID = gm.user_id
JOIN wp_comments c
ON u.ID = c.user_id
JOIN wp_commentmeta cm
ON c.comment_ID = cm.comment_id
JOIN (SELECT * FROM wp_posts WHERE post_type LIKE 'lesson') p
ON c.comment_post_id = p.ID
WHERE gm.group_id = 4 AND cm.meta_key LIKE 'grade'
これは、現在彼らはテストを試みたレッスンで、グループ内のすべての学生のための全学年を返します。しかし、まだ試したことがないレッスンは返されません。
レッスンは投稿で、成績はmeta_keyが '成績'のレコードのmeta_valuesです。これらはコメントとして保存され、comment_meta。
これはすべて明確であり、助けてくれることを願っています。ありがとう。
Ollie第ジョーンズ助けた後、私はこの作られた:(それが唯一のグループの学生の1名を与えますが)
ほぼすべての生徒の成績を動作しますが、返すSELECT u.display_name, p.post_title, IFNULL(cm.meta_value,'--nothing--') grade
FROM wp_users u
JOIN wp_comments c
LEFT JOIN wp_commentmeta cm
ON c.comment_ID = cm.comment_id AND cm.meta_key = 'grade'
JOIN wp_bp_groups_members gm
ON u.ID = gm.user_id
JOIN wp_posts p
ON c.comment_post_id = p.ID
WHERE gm.group_id = 4 AND p.post_type LIKE 'lesson'
、グループ内だけでなく、ものを。
助けてくれてありがとうございました。 1つの問題が発生したので、私は自分の質問に編集を追加しました。 – DanR
私はこれを正しいものとしてマークしています。 wp_commentsとwp_commentmetaの両方に参加する必要がありました。ありがとうございます。 – DanR
ああ、それを理解してくれてありがとう。私は自分の答えを更新しました。 –