我有一個wordpress網站,用於在各種課程(從網站上的測驗)上存儲學生成績。我正在嘗試創建一個查詢,以便爲每個課程中的所有學生(使用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_values,其中meta_key是「成績」。這些存儲爲評論和comment_meta。
我希望這一切都清楚,你可以提供幫助。謝謝。
奧利·瓊斯後幫我做了這個:
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'
幾乎工程,但返回組中的所有學生成績,不只是那些(儘管只給該組中的學生的一個名字) 。
感謝您的幫助,它絕對讓我更接近。我已經添加了對我的問題的編輯,因爲它提出了一個問題。 – DanR
我認爲這是正確的,因爲它使我找到了答案。我不得不離開加入wp_comments和wp_commentmeta。謝謝。 – DanR
啊,謝謝你解決它。我更新了我的答案。 –