2012-06-19 118 views
2

我想知道是否有人能夠幫助我。分組依據和MySQL查詢位置

我正在使用以下查詢從MySQL數據庫正確檢索Google標記數據。

SELECT l.locationid, f.locationid, l.locationname, l.osgb36lat, l.osgb36lon, count(f.locationid) as totalfinds 
    FROM detectinglocations as l 
    LEFT JOIN finds AS f ON l.locationid=f.locationid 
    GROUP BY l.locationid 

我現在試圖通過增加where條款加入到這一點,更具體where userid='$userid'

我試過在查詢中的各個位置添加這個額外的子句,我確信這可能只是一個初學者的錯誤,但我不能讓查詢工作。

我只是想知道是否有人可以看看這個,讓我知道我要去哪裏錯了。

感謝和親切的問候

回答

2

嘗試在GROUP BY之前添加where子句。

+2

嗨@dcp,感謝您花時間回覆我的帖子並同意提供幫助。我已經嘗試了您的建議,而且它的效果非常出色。當延遲的時間已經過去時,我會將此作爲我接受的答案。再次非常感謝和問候 – IRHM

0
$query = "SELECT l.locationid, f.locationid, l.locationname, l.osgb36lat, l.osgb36lon, count(f.locationid) as totalfinds 
      FROM detectinglocations as l 
      LEFT JOIN finds as f on l.locationid=f.locationid 
      WHERE userid=".(int)$userid." 
      GROUP BY l.locationid"; 

我也開始加入(INT)到您的變量 「的sanitize」 的不明(對我來說)VAR

+0

您好@Luis Siqot,感謝您花時間回覆我的文章並提供幫助。我試過你建議的代碼,不幸的是我無法使查詢工作。然而,我接受了以前的建議,因爲這個工作絕對沒問題。親切的問候 – IRHM

+0

我們所有人都在這裏幫助,請注意,我的anwser是一樣的接受anwser,加上建議要小心sql注入。 –

+0

謝謝你的建議。 – IRHM

1

連接中,WHERE條件來後ON聲明

如果userid是那裏表detectinglocations然後用

SELECT l.locationid, f.locationid, l.locationname, l.osgb36lat, l.osgb36lon, count(f.locationid) as totalfinds 
FROM detectinglocations as l 
LEFT JOIN finds AS f ON l.locationid=f.locationid 
WHERE l.userid='$userid' 
GROUP BY l.locationid 

如果userid有表finds則u se

SELECT l.locationid, f.locationid, l.locationname, l.osgb36lat, l.osgb36lon, count(f.locationid) as totalfinds 
FROM detectinglocations as l 
LEFT JOIN finds AS f ON l.locationid=f.locationid 
WHERE f.userid='$userid' 
GROUP BY l.locationid 
+0

Hi @Fahim Parkar,感謝您花時間幫助我解決這個問題。你的建議幾乎反映了我收到的另一個答案,它的效果很好。親切的問候 – IRHM

+1

不是問題..你可以接受dcp答案.. –

+0

非常感謝。問候 – IRHM