我的目標是爲我的sitemap.xml
文件編寫我批准文章的最後修改日期(lastmod
)。這個數據有兩種可能性。MySQL在文章日期和評論日期中選擇最新批准日期
- 如果文章沒有評論被批准,那麼的lastmod是文章的批准 日期。
- 如果文章至少有1個批准的評論,那麼lastmod是相關文章的最後批准評論的批准日期 。
問php unsuccessful while loop within prepared statements問題和閱讀的答案後,我決定
- 不中準備使用循環對於這種情況
- 添加
col_article_id
列到我的意見表,該表顯示了 相關文章在文章ID表 - 並嘗試用更智能的mySQL查詢解決我的問題
我有2個表:
- 文章
- 評論(
comments.col_article_id
鏈接到相關 文章評論)
我想下面的查詢後,
select tb_articles.col_approvaldate, tb_comments.col_approvaldate
from tb_articles, tb_comments
where tb_articles.col_status ='approved' AND tb_comments.col_status ='approved' AND tb_articles.col_id=tb_comments.col_article_id
我的問題是:
1 - 我需要好歹,如果它是在MySQL的語法允許該select max(tb_articles.col_approvaldate, tb_comments.col_approvaldate)
2 - 如果我有N個認可無任何批准的評論文章和M評論被批准(一個或多個)覈準的條款,那麼我應該有N + M結果行每行有1列。但目前,我有m行,每行有2列。
所以我意識到我是錯誤的方式。
我還搜了「mysql最新一行每組」關鍵字。但是,我可以到達這一點。
這是我的第一個join
的經驗。你能糾正我嗎?最好的問候
首先,我在phpadmin sql窗口中嘗試了查詢。不幸的是,它給了我「#1054 - 'where子句''消息中的未知列'tb_articles.col_status'。我在相關表格中肯定有這個專欄。其次,我的邏輯是:作者保存到tb_articles中。那時狀態='待定'。然後如果編輯批准,地位就會變成「批准」。這意味着文章已經發布。人們然後寫評論。同樣的邏輯也適用於此。第一次保存表示自動掛起。然後,如果編輯批准評論狀態也會變成「批准」併發布。如果狀態未決,則批准日期爲空。 – 2013-04-29 09:08:43
編輯查詢 - 現在查看。 – sashkello 2013-04-29 10:03:19
感謝您的幫助,最誠摯的問候。 – 2013-04-30 05:58:37