2010-08-16 75 views
0

我使用MySQL數據庫和C++編程語言。聯合查詢和C++

在我的數據庫中有20個表格。我從這些表中生成不同的消息。 所有表都包含dateTime列,我想對生成的消息進行排序。

我是通過使用聯合來完成的。但是查詢太長了。 你認爲它有另一種方式或我的方式是正確的。

Thans很多。

+2

......這裏幾乎沒有辦法回答這個問題,不知道你的表格包含什麼數據,你產生什麼信息,聯合實際上是做什麼*做什麼*,以及你的查詢是什麼。 – Stephen 2010-08-16 13:51:28

+0

記住你的表格結構或你的查詢片段? – DumbCoder 2010-08-16 14:06:03

回答

1

這聽起來像你試圖從多個不相關的表中得到一個項目的排序列表。

在這種情況下,我會從每個表中分別獲取消息,然後以C++編程方式將它們按您希望的順序排序。這可能會讓你的查詢比使用聯合和跨多個表排序複雜得多。

編輯: 不幸的是,我不認爲有一個絕對的客觀答案是否在SQL中執行此操作或以編程方式在C++中執行此操作。我會建議一種務實的方法:以最簡單和最清楚的方式(通常兩者是相同的)進行編碼,並看看它是如何執行的。如果表現可以接受,那麼你就完成了。如果速度很慢,則對其進行配置。如果你發現你的方法是慢點,那麼你可以嘗試另一種方法,看看它是如何執行的。

+0

感謝您的回答,我想我不能表達我的問題。 我想問一個程序是否正確。 在C++或數據庫查詢中做它? – ayla 2010-08-17 13:07:48

0

我不知道如果MySQL suports這一點,但你可以把你所有的工會作爲一個子選擇和做排序從外部選擇,比如:

select 
    f1, f2 
from (
    select 
    f1, f2 
    from 
    T1 
    union 
    select 
    f5, f6 
    from 
    T2 
) 
order by 
    2