いくつかのテーブル結合を実行し、ピボット テーブルを使用して結果を生成することに成功しました (Ollie Jones の助けを借りて)。SQL ステートメントと結果を以下に示します。
今日または将来に設定されたピボット列「日付」(用語だと思います!?)の値を持つ行のみが結果に返されるようにしたいと思います。しかし、「日付」が技術的WHERE date >= CURDATE()
に存在しないため、ステートメントの末尾にある WHERE 句に追加すると、実行時にエラーが発生します。それを2番目のサブクエリに統合する方法がわかりません。助けていただければ幸いです:)
前もって感謝します
SELECT
content.id as id, content.alias as alias,
(
SELECT modx_site_tmplvar_contentvalues.value FROM modx_site_tmplvar_contentvalues
WHERE modx_site_tmplvar_contentvalues.tmplvarid = 324
AND modx_site_tmplvar_contentvalues.contentid = content.id
) AS featured,
(
SELECT modx_site_tmplvar_contentvalues.value FROM modx_site_tmplvar_contentvalues
WHERE modx_site_tmplvar_contentvalues.tmplvarid = 289
AND modx_site_tmplvar_contentvalues.contentid = content.id
) AS date
FROM modx_site_content AS content
LEFT JOIN
modx_site_tmplvar_contentvalues AS tv_values
ON tv_values.contentid = content.id
WHERE content.parent = 1842
AND content.published = 1
GROUP BY tv_values.contentid
ORDER BY featured DESC, date ASC