好的,我有一个包含键和值的表,我需要查询和订购,看起来有点像这样:
假设我想拉出“dog”(以及任何其他值)的webcategory中的所有不同项(resource_no),并按“order”按升序排序,以便我的结果为:
我无法弄清楚如何查询我的表以允许这个...我尝试过内连接但它们似乎不起作用...任何人都可以帮忙吗?谢谢!
答案 0 :(得分:6)
当它在同一个表中的不同行中时,有点难以阅读,但这应该是针对您现在拥有的值。如果您正在考虑动态列,则需要使用特定于数据库的过程。
SELECT a.RESOURCE_NO, a.value webcategory, b.value location
FROM resources a
LEFT JOIN resources b ON a.RESOURCE_NO=b.RESOURCE_NO AND b.key='location'
LEFT JOIN resources c ON a.RESOURCE_NO=c.RESOURCE_NO AND c.key='order'
WHERE a.key = 'webcategory' AND a.value='dog'
GROUP BY RESOURCE_NO
ORDER BY c.value
演示here。
答案 1 :(得分:0)
select resource_no
, 'dog'
, location
from YourTable
where webcategory = 'location'
and resource_no in
(
select resource_no
from YourTable
where webcategory = 'dog'
)
order by
location