mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 17:29:54 +01:00
Improve query
This commit is contained in:
29
zecke.go
29
zecke.go
@@ -6,7 +6,6 @@ import (
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
//go:embed mm.cred
|
||||
@@ -32,32 +31,30 @@ func MmReadOracle() ([]MmOracle, error) {
|
||||
}
|
||||
|
||||
oracleQuery := `SELECT m.id, m.title, m.mal_id, COALESCE(SUM(pv.score), 0) AS avgScore FROM movie m
|
||||
INNER JOIN vote pv ON (m.id = pv.movie_id)
|
||||
INNER JOIN promise pp ON (pp.user_id = pv.user_id)
|
||||
INNER JOIN evening me ON (pp.evening_id = me.id)
|
||||
JOIN vote pv ON (m.id = pv.movie_id)
|
||||
JOIN promise pp ON (pp.user_id = pv.user_id)
|
||||
JOIN evening me ON (pp.evening_id = me.id)
|
||||
WHERE m.id NOT IN (
|
||||
SELECT m2.id FROM movie m2
|
||||
INNER JOIN evening_movie em2 ON (m2.id = em2.movie_id)
|
||||
INNER JOIN evening e2 ON (em2.evening_id = e2.id)
|
||||
WHERE e2.date < ?
|
||||
JOIN evening_movie em2 ON (m2.id = em2.movie_id)
|
||||
JOIN evening e2 ON (em2.evening_id = e2.id)
|
||||
WHERE e2.date < CURDATE()
|
||||
) AND (
|
||||
m.id IN (
|
||||
SELECT mm.movie_source FROM movie m3
|
||||
INNER JOIN movie_movie mm ON (m3.id = mm.movie_target)
|
||||
INNER JOIN evening_movie em3 ON (mm.movie_target = em3.movie_id)
|
||||
INNER JOIN evening e3 ON (em3.evening_id = e3.id)
|
||||
WHERE e3.date < ? GROUP BY m3.id
|
||||
JOIN movie_movie mm ON (m3.id = mm.movie_target)
|
||||
JOIN evening_movie em3 ON (mm.movie_target = em3.movie_id)
|
||||
JOIN evening e3 ON (em3.evening_id = e3.id)
|
||||
WHERE e3.date < CURDATE() GROUP BY m3.id
|
||||
)
|
||||
OR
|
||||
m.id NOT IN (
|
||||
SELECT mm.movie_source FROM movie m4
|
||||
INNER JOIN movie_movie mm ON (m4.id = mm.movie_source)
|
||||
JOIN movie_movie mm ON (m4.id = mm.movie_source)
|
||||
)
|
||||
)
|
||||
AND pp.promised = 1 AND m.aired = 1 AND me.date >= ? AND me.date < ? GROUP BY m.id ORDER BY avgScore DESC, m.id ASC;`
|
||||
today := PrintDate(time.Now())
|
||||
nextWeek := PrintDate(time.Now().AddDate(0, 0, 7))
|
||||
rows, err := mmDb.Query(oracleQuery, today, today, today, nextWeek)
|
||||
AND pp.promised = 1 AND m.aired = 1 AND me.date >= CURDATE() AND me.date < DATE_ADD(CURDATE(), INTERVAL 1 WEEK) GROUP BY m.id ORDER BY avgScore DESC, m.id ASC;`
|
||||
rows, err := mmDb.Query(oracleQuery)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user