Php MySQL:搜索一个简单的表,但是将WordPress的“wp\u usermeta”表与meta\u key/meta\u值组合在一起
正如我在标题中提到的,我正在“bid_userloc”表中请求纬度和经度。。。但我需要结合“wp_usermeta”表中的信息Php MySQL:搜索一个简单的表,但是将WordPress的“wp\u usermeta”表与meta\u key/meta\u值组合在一起,php,mysql,sql,wordpress,Php,Mysql,Sql,Wordpress,正如我在标题中提到的,我正在“bid_userloc”表中请求纬度和经度。。。但我需要结合“wp_usermeta”表中的信息 SET @centerLat = '48.531157'; SET @centerLng = '-123.782959'; SELECT *, ( 3959 * acos( cos( radians( @centerLat ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(@centerLng) )
SET @centerLat = '48.531157';
SET @centerLng = '-123.782959';
SELECT *, ( 3959 * acos( cos( radians( @centerLat ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(@centerLng) ) + sin( radians( @centerLat ) ) * sin( radians( lat ) ) ) ) AS distance FROM bid_userloc HAVING distance < 25 ORDER BY distance LIMIT 0 , 20
例如,我需要meta_key昵称的meta_值。。。和许多其他人一样,但一旦我看到一个人是如何做到的,我可以添加更多
我真的很感激 试试这个,用你原来拥有的东西代替距离,用真实的东西代替其他东西:
SET @centerLat = '48.531157';
SET @centerLng = '-123.782959';
SELECT bid_userloc.*, distance, nickname.meta_value, something_else.meta_value
FROM bid_userloc
LEFT JOIN wp_usermeta AS nickname
ON nickname.userid = bid_userloc.user_id
AND nickname.meta_key = 'nickname'
LEFT JOIN wp_usermeta AS something_else
ON something_else.userid = bid_userloc.user_id
AND something_else.meta_key = 'something_else'
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20
修改后的答案如下:
SET @centerLat = '48.531157';
SET @centerLng = '-123.782959';
SELECT bid_userloc.*, nickname.meta_value, last_name.meta_value,
( 3959 * acos( cos( radians( @centerLat ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(@centerLng) ) + sin( radians( @centerLat ) ) * sin( radians( lat ) ) ) ) AS distance
FROM bid_userloc
LEFT JOIN wp_usermeta AS nickname
ON nickname.user_id = bid_userloc.user_id
AND nickname.meta_key = 'nickname'
LEFT JOIN wp_usermeta AS last_name
ON last_name.user_id = bid_userloc.user_id
AND last_name.meta_key = 'last_name'
HAVING distance < 25
LIMIT 0 , 20
谢谢你的来电。。。然而,距离声明似乎提出了一个问题。距离的存在仅仅是因为它的力量。。。数据库里什么地方都没有,我找到了。我将把它作为一个答案发布。。。非常感谢。
SET @centerLat = '48.531157';
SET @centerLng = '-123.782959';
SELECT bid_userloc.*, nickname.meta_value, last_name.meta_value,
( 3959 * acos( cos( radians( @centerLat ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(@centerLng) ) + sin( radians( @centerLat ) ) * sin( radians( lat ) ) ) ) AS distance
FROM bid_userloc
LEFT JOIN wp_usermeta AS nickname
ON nickname.user_id = bid_userloc.user_id
AND nickname.meta_key = 'nickname'
LEFT JOIN wp_usermeta AS last_name
ON last_name.user_id = bid_userloc.user_id
AND last_name.meta_key = 'last_name'
HAVING distance < 25
LIMIT 0 , 20