MySQL在何处加入
我有两张桌子-MySQL在何处加入,mysql,join,Mysql,Join,我有两张桌子- 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_business
------------------------
| id | name | lat |long|
|----|------|-----|----|
| 1 | aaaa |12.45|6.88|
|----|------|-----|----|
| 2 | bbbb |12.34|6.45|
|----|------|-----|----|
| 3 | cccc |12.12|6.50|
|----|------|-----|----|
及
现在我想找到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
我找到了公式。但这并没有显示出价3的计数=0。我猜我必须使用Left-join,但我不知道如何使用
select id, (select count(*) from tbl_deals,tbl_business a1 where tbl_deals.bid=a1.id and a1.id=a2.id and ( 6371 * ACOS( COS( RADIANS( 12.44 ) ) * COS( RADIANS( lat ) ) * COS( RADIANS( `long` ) - RADIANS( 6.66 ) ) + SIN( RADIANS( 12.44 ) ) * SIN( RADIANS( lat ) ) ) ) < 30) as count
from tbl_business a2
group by id
order by count desc
我使用您的数据和更改条件来满足结果
参考:
我使用您的数据和更改条件来满足结果
参考:
是的,您必须编写外部连接,业务左连接交易:
是的,您必须编写外部联接,业务左联接交易:
成功了。谢谢我想我应该多研究一下连接你有没有给初学者的资源?除了mysql文档:PAlso:这是有效的。谢谢我想我应该多研究一下连接你有没有给初学者的资源?除了mysql文档:PAlso:和
select id, (select count(*) from tbl_deals,tbl_business a1 where tbl_deals.bid=a1.id and a1.id=a2.id and ( 6371 * ACOS( COS( RADIANS( 12.44 ) ) * COS( RADIANS( lat ) ) * COS( RADIANS( `long` ) - RADIANS( 6.66 ) ) + SIN( RADIANS( 12.44 ) ) * SIN( RADIANS( lat ) ) ) ) < 30) as count
from tbl_business a2
group by id
order by count desc
SELECT
b.id
, COUNT( d.bid ) AS dcount
FROM
tbl_business AS b
LEFT JOIN
tbl_deals AS d
ON
d.bid = b.id
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
b.id
ORDER BY
dcount DESC