2014-03-04 35 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