我想写一个wordpress的查询,它会给我所有的post_id
的最低fromprice
字段为每个region
。现在诀窍是这些是wordpress中的自定义字段,由于这样,信息存储在行中,所以没有region
和fromprice
列。需要在一个MySQL查询中的每个区域的最低价格
所以我的数据是(当然包含了很多行):
Post_ID | Meta_Key | Meta_Value
1 | Region | Location1
1 | FromPrice | 150
2 | Region | Location1
2 | FromPrice | 160
3 | Region | Location2
3 | FromPrice | 145
我努力建设应返回各分组的“价格最低”匹配后的POST_ID查询用类似的结果区域:
Post_ID | Region | From Price
1 | Location1 | 150
3 | Location2 | 145
这将让我轻松地迭代POST_ID的和打印所需的信息,其实,我只是高兴回到POST_ID的,如果剩下的就是更加努力,然后我就可以获取信息如果需要可以独立。
非常感谢,把我的头发撕掉了,不要经常考虑将结果从基于行的列转移到列的基础上,但这次我需要它!
因此,您可以了解我拥有的表格结构,您可以使用下面的参考指南。我以为我有这个,但事实证明是的,这个查询打印出每个不同的区域与发现附着在该地区的该帖子价格最低,但post_id完全不正确。我不知道为什么,它似乎只是获得post_id的第一个结果并使用它。
SELECT pm.post_id,
pm2.meta_value as region,
MIN(pm.meta_value) as price
FROM `wp_postmeta` pm
inner join `wp_postmeta` pm2
on pm2.post_id = pm.post_id
AND pm2.meta_key = 'region'
AND pm.meta_key = 'fromprice'
group by region
非常感谢,我不知道它是否会推断这个程序,这将是一个很大的帮助。 – GONeale 2010-09-16 23:38:03
嗯,当我这样做时,我收到一个错误: 你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在'pm.meta_value AS DECIMAL'附近使用正确的语法'从'wp_postmeta'pm内部连接'wp_po'在第1行] – GONeale 2010-09-16 23:41:41
Oops - 看起来像我的CAST语法错误。尝试修改后的版本。 – 2010-09-17 09:52:34