我試圖爲一個網站生成一個動態的RSS提要,並且我遇到了編寫一個mySQL查詢的麻煩。我有幾個包含我需要訪問的數據的獨立表,並且我想按日期排序所有這些表。使用mySQL,我如何按日期排序幾個不同的表?
作爲一個示例表:
Chapters
release ChapterTitle ChapterContent ExtraInfo
10/12 'Chapter 1' 'Bla bla bla' StoryTitle
10/14 'Chapter 2' 'Bla bla bla' StoryTitle
10/16 'Chapter 3' 'Bla bla bla' StoryTitle
10/18 'Chapter 4' 'Bla bla bla' StoryTitle
NewsFeed
DATETIME Title Article
10/11 'Website Online!' 'I now have my website!'
10/15 'Everything Working!' 'Everything is going well!'
我希望排序按以下順序返回的東西:
Website Online Text
Chapter 1 StoryTitle Text
Chapter 2 Story Title Text
Everything Working Text
Chapter 3 Story Title Text
Chapter 4 Story Title Text
我猜某種FULL JOIN將是需要的(以及時間不一樣的事實會讓生活變得困難),但是就我所知,這就是事實。
任何想法?
編輯:聯盟的想法很好,但我忘了提及我需要檢索的附加信息在兩者之間不能完全相同 - 它們需要稍微不同的處理,我需要檢測(通過檢查我知道在一個表中需要的信息很容易檢測到,如果該值爲空,那麼它是另一種類型的條目)。
編輯編輯:這是我最好的猜測在適當的代碼,但數據庫正在返回一個空表,我不知道爲什麼。左連接返回一半的信息,右連接返回另一半,如果我使用完全連接,我應該得到所有它,而不是沒有。
select *
from chapter
full join newsFeed
on releaseDate=newsFeed.release
limit 0, 100
你可能想'UNION ALL'相當,但使用 – nos 2010-10-02 21:36:15
UNION如果需要刪除重複,而且也沒有必要支架上的每個語句是UNION'd – 2010-10-02 21:36:54
我把括號放在那裏就是安全的 - 它不應該對性能有任何影響。感謝您的編輯。我不認爲UNION和UNION ALL會在這裏有所作爲,因爲兩個表都包含相當不同的數據。 – Mchl 2010-10-02 21:50:32