【发布时间】:2012-02-03 15:15:11
【问题描述】:
我有一个包含这些值的用户表(示例中已删除):
- 姓名
- 城市
- 县
- 州省
- 国家
- 大陆
- 实力
- 耐力
- 智能
我基本上想要一个按地区为您自己返回最高统计数据的查询。如果您在该国拥有最高的力量 (67),在您的城市拥有最高的耐力 (59),而不是任何地方最高的智力,我想要一个 2 行结果:
('Strength', 67, 'Country', 'United States')
('耐力', 59, '城市', '雷德蒙德')
请注意,如果您在该国拥有最高的实力,那么您在州/省、县和市中也将拥有最高的实力(但我希望不要在结果中返回那些)。我可以使用多个 SELECT 查询来完成这一切,但是,我想知道如何在一个查询中执行此操作以提高效率(或者这是否是个好主意?)。我想逻辑会像(伪代码):
(SELECT FROM Users ORDERBY Strength WHERE Country = 'MyCountry' LIMIT 1) IF Name != 'Me' (SELECT FROM Users ORDERBY Strength WHERE StateProvince = 'MyState' LIMIT 1) ... 以此类推
此外,以上内容还需要与耐力和智力一起使用。谢谢!
【问题讨论】:
标签: mysql multiple-select-query