Refactor MySQL database specific SQL
This commit is contained in:
parent
cb881558ca
commit
6f28bb2a16
@ -3,6 +3,7 @@
|
|||||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-call_for_shows.tpl.html' %-->
|
<!--% PROCESS 'shared-call_for_shows.tpl.html' %-->
|
||||||
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
|
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
|
||||||
|
<!--% PROCESS "queries-index-${constants.database}.tpl.html" %-->
|
||||||
<hr>
|
<hr>
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
@ -10,21 +11,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<!--% days_till_next_episode = 0 %-->
|
<!--% days_till_next_episode = 0 %-->
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH next_available_episode_result IN DBI.query('
|
<!--% FOREACH next_available_episode_result IN DBI.query(query_next_available_episode)
|
||||||
WITH next_id AS (
|
|
||||||
SELECT id, id + 1 AS \'id_next\', date as \'last_date\'
|
|
||||||
FROM eps
|
|
||||||
WHERE eps.date > NOW()
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
MIN(next_id.id_next) AS \'next_id\',
|
|
||||||
DATE_FORMAT(MIN(last_date), \'%Y\') AS \'last_year\',
|
|
||||||
DATE_FORMAT(MIN(last_date), \'%d\') AS \'last_day\',
|
|
||||||
DATE_FORMAT(MIN(last_date), \'%m\') AS \'last_month\'
|
|
||||||
FROM next_id
|
|
||||||
LEFT JOIN eps ON next_id.id_next = eps.id
|
|
||||||
WHERE eps.id IS NULL
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% USE date %-->
|
<!--% USE date %-->
|
||||||
<!--% calc = date.calc %-->
|
<!--% calc = date.calc %-->
|
||||||
@ -47,33 +34,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<h1>Latest Shows</h1>
|
<h1>Latest Shows</h1>
|
||||||
<!--% FOREACH latest_episodes IN DBI.query('
|
<!--% FOREACH latest_episodes IN DBI.query(query_latest_episodes)
|
||||||
WITH comment_tallies AS (
|
|
||||||
SELECT
|
|
||||||
eps_id,
|
|
||||||
COUNT(eps_id) AS eps_tally
|
|
||||||
FROM comments
|
|
||||||
GROUP BY eps_id
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
eps.id,
|
|
||||||
eps.explicit,
|
|
||||||
eps.date, eps.license, eps.duration,
|
|
||||||
eps.title, eps.summary, eps.tags,
|
|
||||||
eps.notes,
|
|
||||||
hosts.local_image,
|
|
||||||
hosts.hostid,
|
|
||||||
hosts.host, hosts.email,
|
|
||||||
miniseries.name AS series, miniseries.id AS seriesid,
|
|
||||||
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
|
||||||
INNER JOIN miniseries ON eps.series = miniseries.id
|
|
||||||
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
|
||||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
ORDER BY eps.id DESC
|
|
||||||
LIMIT 10
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<hr>
|
<hr>
|
||||||
<article>
|
<article>
|
||||||
@ -99,22 +60,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<h1>Previous five weeks</h1>
|
<h1>Previous five weeks</h1>
|
||||||
</header>
|
</header>
|
||||||
<!--% FOREACH last_5_weeks_episodes IN DBI.query('
|
<!--% FOREACH last_5_weeks_episodes IN DBI.query(query_last_5_weeks_episodes)
|
||||||
SELECT
|
|
||||||
eps.id,
|
|
||||||
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
|
||||||
eps.date, eps.license, eps.title, eps.summary,
|
|
||||||
eps.duration, eps.notes, eps.tags,
|
|
||||||
hosts.hostid,
|
|
||||||
hosts.host, hosts.email, hosts.local_image,
|
|
||||||
miniseries.name AS series, miniseries.id AS seriesid
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
|
||||||
INNER JOIN miniseries ON eps.series = miniseries.id
|
|
||||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
ORDER BY eps.id DESC
|
|
||||||
LIMIT 30 OFFSET 10
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% show_summary(last_5_weeks_episodes) %-->
|
<!--% show_summary(last_5_weeks_episodes) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
62
templates/queries-index-mysql.tpl.html
Normal file
62
templates/queries-index-mysql.tpl.html
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<!--% query_next_available_episode = '
|
||||||
|
WITH next_id AS (
|
||||||
|
SELECT id, id + 1 AS \'id_next\', date as \'last_date\'
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date > NOW()
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MIN(next_id.id_next) AS \'next_id\',
|
||||||
|
DATE_FORMAT(MIN(last_date), \'%Y\') AS \'last_year\',
|
||||||
|
DATE_FORMAT(MIN(last_date), \'%d\') AS \'last_day\',
|
||||||
|
DATE_FORMAT(MIN(last_date), \'%m\') AS \'last_month\'
|
||||||
|
FROM next_id
|
||||||
|
LEFT JOIN eps ON next_id.id_next = eps.id
|
||||||
|
WHERE eps.id IS NULL
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_latest_episodes = '
|
||||||
|
WITH comment_tallies AS (
|
||||||
|
SELECT
|
||||||
|
eps_id,
|
||||||
|
COUNT(eps_id) AS eps_tally
|
||||||
|
FROM comments
|
||||||
|
GROUP BY eps_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
eps.date, eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid,
|
||||||
|
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
ORDER BY eps.id DESC
|
||||||
|
LIMIT 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_last_5_weeks_episodes = '
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
||||||
|
eps.date, eps.license, eps.title, eps.summary,
|
||||||
|
eps.duration, eps.notes, eps.tags,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email, hosts.local_image,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
ORDER BY eps.id DESC
|
||||||
|
LIMIT 30 OFFSET 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
|
Reference in New Issue
Block a user