2012-02-19 81 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