2013-02-27 40 views
0

我在下面的表forum_reply和forum_post。 我怎樣才能獲得最新帖子或回覆的曾經是最匹配的forum_category_id說1 我需要檢索日期,作者和forum_(帖子或回覆)_id,forum_category_idMYSQL幫助獲取最新帖子或回覆

forum_post_id int(11) No Primary NULL auto_increment 
    forum_category_id int(11) No None NULL  
    forum_post_title varchar(255) No None NULL  
    forum_post_description mediumtext No None NULL  
    customer_id int(11) No None 0 
    forum_post_author varchar(64) No None NULL  
    forum_post_email varchar(128) No None NULL  
    is_lock tinyint(1) No None 0 
    is_stick tinyint(1) No None 0 
    is_notify tinyint(1) No None 0 
    status tinyint(1) No None 0 
    view int(8) No None 0 
    post_added datetime No None 0000-00-00 00:00:00 

post_rate int(8) No None 0 
    ip varchar(32) No None NULL  
    post_icon varchar(128) No None default.png 

forum_reply_id int(11) No Primary NULL auto_increment 
    forum_post_id int(11) No None NULL  
    forum_category_id int(11) No None NULL  
    forum_reply_description mediumtext No None NULL  
    customer_id int(11) No None 0 
    forum_reply_author varchar(255) No None NULL  
    forum_reply_email varchar(128) No None NULL  
    is_notify tinyint(1) No None 0 
    status tinyint(1) No None 0 
    reply_added datetime No None 0000-00-00 00:00:00 
    reply_rate int(8) No None 0 
    ip varchar(32) No None NULL  
    reply_icon varchar(128) No None default.png 
+0

你嘗試過什麼?你的編程語言是什麼,或者你的意思是你想知道SQL? – Raptor 2013-02-27 08:34:32

+0

對於快速和更好的答案,[SQL小提琴示例](http://sqlfiddle.com)會很好。 – araknoid 2013-02-27 08:40:38

+0

歡迎來到Stack Overflow。給未來一個小小的提示:發佈真正的CREATE TABLE語句需要與發佈表格數據中的信息相同的工作,並且允許其他人輕鬆地在他們的本地'test'數據庫中加載東西。 – 2013-02-27 08:44:06

回答

0

使用UNION到兩個表結合的SELECT聲明應該可以幫助您:

SELECT 
    forum_post_author, 
    post_added, 
    forum_post_id, 
    forum_category_id, 
    'post' as type 
FROM 
    forum_post 
WHERE 
    forum_category_id = 1 

UNION 
SELECT 
    forum_reply_author, 
    reply_added, 
    forum_reply_id, 
    forum_category_id, 
    'reply' as type 
FROM 
    forum_reply 
WHERE 
    forum_category_id = 1 

ORDER BY 
    post_added DESC 
LIMIT 1 

SQL Fiddle

+0

經過測試後,這是更好的查詢,因爲它給了我一個類型字段,告訴我它是否是回覆或發佈。謝謝你們的幫助。 – 2013-02-27 12:53:32

0
SELECT DISTINCT post_added, forum_post_author, forum_post_id, forum_category_id 
FROM forum_post WHERE forum_category_id = 1 
UNION 
SELECT DISTINCT reply_added, forum_reply_author, forum_reply_id, forum_category_id 
FROM forum_reply WHERE forum_category_id = 1 
ORDER BY post_added DESC LIMIT 1 

如果你想要做什麼,我覺得你這樣做是應該這樣做,我認爲(但我不是親任)。在這這裏

更多信息: Display two different columns from two different tables with ORDER BY

+0

噢,對不起,忘了那一點。編輯帖子以反映正確的查詢 – 2013-02-27 12:48:00