所以我有3個表,分別叫做comments
,users
和posts
。 我想加入3個sql表並進行嵌套查詢
- 從評論的「分數」
- 「用戶信譽」爲做左用戶評論和用戶之間的連接與c.user_id = u.id
得到通過在c.post_id = p.id上發表評論和帖子之間的左連接,從帖子表中「標記」。
但是這裏有一個技巧,標籤應該基於帖子的類型(p.post_type_id)。
因此,如果ID = 1,那麼這意味着我們有「問題」的帖子,簡單地檢索標籤
否則,如果ID = 2那麼這意味着我們有一個答案,讓我們有標籤從posts表中查看它的parent_id。
我試圖使用WHERE,CASE,嵌套的IF,並嵌套SELECT但都扔語法錯誤
最後,我試着做以下,但我有一個空的結果
SELECT c.score,
COALESCE (u.reputation) reputation,
COALESCE (p.tags) tags
FROM comments c
LEFT JOIN users u
ON c.user_id = u.id
LEFT JOIN posts p
ON (c.post_id = p.id AND p.post_type_id = 1) OR (c.post_id = p.id AND p.post_type_id = 2)
WHERE (p.id = p.parent_id)
那麼我怎麼能基於這兩種類型的標籤?
你使用的是Postgres或MySQL?請適當地標記你的問題。 –