2014-02-20 50 views
0

我有一个查询使用多个MAX语句,在使用单个MAX语句时工作。我卡住了。以下作品:MySQL多个MAX语句导致语法错误?

SELECT 
MAX(CASE WHEN meta_key = '_pronamic_google_maps_latitude' THEN meta_value END)lat, 
FROM wp_postmeta WHERE post_id IN (SELECT id from wp_posts where post_name = 'Idaho') 

但这并不:

SELECT 
MAX(CASE WHEN meta_key = '_pronamic_google_maps_latitude' THEN meta_value END)lat, 
MAX(CASE WHEN meta_key = '_pronamic_google_maps_longitude' THEN meta_value END)long 
FROM wp_postmeta WHERE post_id IN (SELECT id from wp_posts where post_name = 'Idaho') 

有什么不对?

+4

不工作如何?你会得到一个语法错误?错误的结果? 'long'是一个保留字,除非你引用它,否则不能用作别名...''... as'long'''。 –

+2

......这正是我们使用纬度和经度的原因 – Strawberry

+0

谢谢大家 - 我一直在看这太久。 –

回答

1

由于语法高亮提示long为reserved word,所以您必须将其转义以将其用作别名。 Example

SELECT 
    MAX(CASE WHEN meta_key = '_pronamic_google_maps_latitude' THEN meta_value END) AS lat, 
    MAX(CASE WHEN meta_key = '_pronamic_google_maps_longitude' THEN meta_value END) AS `long` 
FROM wp_postmeta WHERE post_id IN (SELECT id from wp_posts where post_name = 'Idaho')