mess9

Untitled

Jan 7th, 2022 (edited)
415
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.12 KB | None | 0 0
  1. VIEW query AS (
  2. SELECT
  3.     q.id AS q_id,
  4.     q.title,
  5.     q.description,
  6.     q.last_redaction_date ,
  7.     q.persist_date ,
  8.     u.id ,
  9.     u.full_name ,
  10.     u.image_link ,
  11.     (
  12.         SELECT SUM(r.COUNT) FROM reputation r WHERE r.author_id = u.id)
  13.         AS reputation,
  14.     (
  15.         SELECT COUNT(up.vote) FROM votes_on_questions up WHERE up.vote = 'UP_VOTE' AND up.question_id = q.id )
  16.         AS up_votes
  17.     (
  18.         SELECT COUNT(down.vote) FROM votes_on_questions down WHERE down.vote = 'DOWN_VOTE' AND down.question_id = q.id)
  19.         AS down_votes,
  20.     (  
  21.         SELECT COUNT(a.id) FROM answer a WHERE a.question_id = q.id)
  22.         AS answers,
  23.     t.id AS t_id,
  24.     t.name AS t_name,
  25.     t.description AS t_desc
  26. FROM
  27.     question q JOIN user_entity u ON u.id = q.user_id JOIN
  28.     question_has_tag qht ON q.id = qht.question_id JOIN
  29.     tag t ON qht.tag_id = t.id
  30.     )
  31. CASE
  32.     WHEN -1 = :inignoredTag THEN (SELECT * FROM query WHERE qht.tag_id IN :trackedTag)
  33.     WHEN -1 = :trackedTag THEN (SELECT * FROM query WHERE t.id NOT IN :ignoredTag)
  34.     WHEN -1 = :inignoredTag AND -1 = :trackedTag (SELECT * FROM query)
  35.     ELSE (SELECT * FROM query WHERE t.id NOT IN :ignoredTag AND qht.tag_id IN :trackedTag)
  36. END
Add Comment
Please, Sign In to add comment