从同一查询中的另一个表中加入并获取一些其他信息

时间:2012-08-28 22:46:24

标签: php mysql sql

$query = sprintf("SELECT user_id, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM bid_latlng HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
    mysql_real_escape_string($center_lat),
    mysql_real_escape_string($center_lng),
    mysql_real_escape_string($center_lat),
    mysql_real_escape_string($radius));

我需要做的是使用上述语句中的user_loginwp_users表中获取user_id列。

wp_users TABLE
id | user_login

我真的不太清楚如何在第一个陈述中正确地JOIN使用结果的两个陈述......

1 个答案:

答案 0 :(得分:0)

以下查询可以为您提供所需的结果:

sprintf("SELECT bid_latlng.user_id,wp_users.user_login, bid_latlng.lat, bid_latlng.lng, 
( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance 

    FROM bid_latlng JOIN wp_users ON bid_latlng.user_id = wp_users.user_id HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
        mysql_real_escape_string($center_lat),
        mysql_real_escape_string($center_lng),
        mysql_real_escape_string($center_lat),
        mysql_real_escape_string($radius));