2012-02-19 83 views
0

我有兩個表,一個包含基本的資源信息,以列和值,如:SQL時,爲了在同一個表中查詢排序

enter image description here

並與列關聯的值EXTA的一個單獨的表和數據,如:

enter image description here

我所試圖做的是寫一個SQL查詢,將加入兩個生產由「命令」鍵排序,像這樣的結果:

enter image description here

我不知道如何讓我的加入工作,這樣我既可以從同一個表拉的位置值,然後排序的順序值。

而在你問之前,不,我不能重新設計數據庫模式,我必須與此工作。任何幫助非常感謝!

回答

0

試試這個

SELECT t1.RESOURCE_NO 
     ,t1.NAME 
     ,t2.VALUE 
     ,t3.VALUE -- Included so that you can "see" the value 
    FROM table1 t1 
INNER JOIN table2 t2 
    ON t1.RESOURCE_NO = t2.RESOURCE_NO AND t2.[KEY] = 'location' 
INNER JOIN table2 t3 
    ON t1.RESOURCE_NO = t3.RESOURCE_NO AND t3.[KEY] = 'order' 
ORDER BY t3.VALUE ASC 
0

這個總體思路應該工作(甲骨文下測試):

SELECT * 
FROM TABLE1 
    JOIN TABLE2 TABLE2_ORDER 
     ON TABLE1.RESOURCE_NO = TABLE2_ORDER.RESOURCE_NO AND TABLE2_ORDER.KEY = 'order' 
    JOIN TABLE2 TABLE2_NONORDER 
     ON TABLE1.RESOURCE_NO = TABLE2_NONORDER.RESOURCE_NO AND TABLE2_NONORDER.KEY <> 'order' 
ORDER BY 
    TABLE2_ORDER.VALUE 

用簡單的英語:

  • 加入到順序和非順序值。
  • 然後按排序值排序。

(當然,這是假定有恰好每TABLE1一個「訂單」值的行。如果不是,該查詢將或者「乘」或「擦除」的行的情況下。)

+0

只有一個訂單值,我會試試這個,謝謝! – Stephen 2012-02-19 16:19:05