小编Chr*_*ris的帖子

如何使用MySQL列别名进行计算?

如何使用两个子查询中的列别名(lat和lng)来进行距离计算?我基本上要做的是使用经度和纬度值计算两个位置之间的距离.但不知怎的,我的别名在查询中不可用,为什么?

SELECT wp_posts.*,
(SELECT wp_postmeta.meta_value FROM wp_postmeta WHERE wp_postmeta.post_id = wp_posts.ID   AND wp_postmeta.meta_value LIKE '41.%') AS lat,
(SELECT wp_postmeta.meta_value FROM wp_postmeta WHERE wp_postmeta.post_id = wp_posts.ID AND wp_postmeta.meta_value LIKE '2.%') AS lng,
(3959 * acos( cos( radians(41.367682) ) * cos( radians( 'lat' ) ) * cos( radians('lng') -     radians(2.154077)) + sin(radians(41.367682)) * sin( radians('lat')))) AS distance
FROM wp_posts, wp_postmeta
WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = 'position' AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'page' AND wp_posts.post_date <  NOW()
GROUP BY …
Run Code Online (Sandbox Code Playgroud)

mysql alias subquery calculated-columns

6
推荐指数
1
解决办法
8172
查看次数

MySQL - 基于if和join的高级查询

我试图根据连接表的值查询几个表一个查询.

SELECT a.id,a.name,
IFNULL(b.imageurl, 'default image url') AS 'imageurl',
IFNULL(b.imagecategory, '34') AS 'imagecategory',
IFNULL(b.imagetype, 't') AS 'imagetype'
FROM summary a
LEFT JOIN images i ON a.id = b.id
WHERE b.imagetype = 'thumbnail' AND b.imagecategory = '99'
Run Code Online (Sandbox Code Playgroud)

表'a'是主表,包含有关对象的各种信息.

表'b'由每个对象的几个图像URL组成,这些URL使用'imagetype'和'imagecategory'进行过滤,仅匹配每个对象的一个​​图像.

只有表'b'具有匹配的id,imagetype和imagecategory时,两个表的连接才有效.如果没有,只返回表'a'中包含它们的记录,这不是我想要的.我希望表'b'返回使用IFNULL函数设置的默认值,所以我得到一个完整的结果集,即使这个表缺少链接id的值:s.

我怎样才能做到这一点?

mysql sql join ifnull

2
推荐指数
1
解决办法
3658
查看次数

标签 统计

mysql ×2

alias ×1

calculated-columns ×1

ifnull ×1

join ×1

sql ×1

subquery ×1