我有两个表,一个包含基本的资源信息,以列和值,如:SQL时,为了在同一个表中查询排序
并与列关联的值EXTA的一个单独的表和数据,如:
我所试图做的是写一个SQL查询,将加入两个生产由“命令”键排序,像这样的结果:
我不知道如何让我的加入工作,这样我既可以从同一个表拉的位置值,然后排序的顺序值。
而在你问之前,不,我不能重新设计数据库模式,我必须与此工作。任何帮助非常感谢!
我有两个表,一个包含基本的资源信息,以列和值,如:SQL时,为了在同一个表中查询排序
并与列关联的值EXTA的一个单独的表和数据,如:
我所试图做的是写一个SQL查询,将加入两个生产由“命令”键排序,像这样的结果:
我不知道如何让我的加入工作,这样我既可以从同一个表拉的位置值,然后排序的顺序值。
而在你问之前,不,我不能重新设计数据库模式,我必须与此工作。任何帮助非常感谢!
试试这个
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
这个总体思路应该工作(甲骨文下测试):
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一个“订单”值的行。如果不是,该查询将或者“乘”或“擦除”的行的情况下。)
只有一个订单值,我会试试这个,谢谢! – Stephen 2012-02-19 16:19:05