2014-03-04 38 views
0

尝试运行一些没有运气的SQL,试图从条件为true的两个表中选择数据。从条件为真的多个表中进行选择

这些表是driver_details和locations。这两个表都有列user_id,我想根据两部分之间匹配的user_id从两个表中获取数据。 (select语句可以工作并返回ID);

SELECT driver_details.firstName, 
        locations.lat, 
        locations.lng 
        FROM driver_details 
        INNER JOIN locations 
        WHERE user_id = 
        (SELECT user_id FROM locations WHERE 
        (lat BETWEEN 0 AND 5) AND 
        (lng BETWEEN 0 AND 5)) 

我收到错误: 致命错误:调用一个成员函数bind_param()的非对象在C于:\ XAMPP \ htdocs中\矢量\ WWW \脚本\ getDriversInRange.php线路33上

+0

对不起,这只是一个错字 – wazzaday

+0

您是否收到错误或不正确/没有数据? – ChicagoRedSox

+0

得到一个完整的错误 – wazzaday

回答

1
SELECT d.firstName, 
    l.lat, 
    l.lng 
FROM driver_details d 
    INNER JOIN locations l ON d.user_id = l.user_id 
WHERE l.lat BETWEEN 0 AND 5 
    AND l.lng BETWEEN 0 AND 5 

这基本上是一个以上的C完整的BWS发布的例子。

+0

这完美的作品,非常感谢! – wazzaday

2

您需要关乎的2台使用的东西,两个表中很常见,它是用来连接它们正在加入...你提到的user_id

... 
FROM driver_details 
INNER JOIN locations 
ON driver_details.user_id = locations.user_id 
WHERE ... 
+0

从技术上讲,您不必这样做。它起着'CROSS JOIN'的作用。这就是说,这很混乱,应该避免。 http://stackoverflow.com/a/16471286/2136840 – ChicagoRedSox