mysql join与where_MySQL JOIN与WHERE IN

我有两张桌子 -

tbl_business

------------------------

| id | name | lat |long|

|----|------|-----|----|

| 1 | aaaa |12.45|6.88|

|----|------|-----|----|

| 2 | bbbb |12.34|6.45|

|----|------|-----|----|

| 3 | cccc |12.12|6.50|

|----|------|-----|----|和

tbl_deals

-------------------

| id | deal | bid |

|----|------|-----|

| 1 | xxxx | 1 |

|----|------|-----|

| 2 | yyyy | 1 |

|----|------|-----|

| 3 | zzzz | 2 |

|----|------|-----|现在,我想查找距离12.44, 6.66 1公里范围内的所有商家,以及优惠次数。例如。

| bid |dcount|

|-----|------|

| 1 | 2 |

|-----|------|

| 2 | 1 |

|-----|------|

| 3 | 0 |

|-----|------|我现在使用这个查询 -

SELECT bid, COUNT( id ) as count

FROM `tbl_deals`

WHERE bid

IN (

SELECT id

FROM tbl_business

WHERE ( 6371 * ACOS( COS( RADIANS( 12.44 ) ) * COS( RADIANS( lat ) ) * COS( RADIANS( long ) - RADIANS( 6.66 ) ) + SIN( RADIANS( 12.44 ) ) * SIN( RADIANS( lat ) ) ) ) < 1

)

GROUP BY bid

ORDER BY count DESC我找到了公式here。但是,这并不显示计数= 0为出价3.我猜我必须使用左连接这个,但不知道如何。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值