2

誰かが私を助けてくれるのではないかと思います。

以下のクエリを使用して、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'ます。

クエリ内のさまざまな位置にこの余分な句を追加しようとしましたが、これはおそらく初心者の間違いであると確信していますが、クエリを機能させることができません.

誰かがこれを見て、どこが間違っているのか教えてくれるのではないかと思いました。

よろしくお願いいたします

4

3 に答える 3

2

GROUPBYの直前にwhere句を追加してみてください。

于 2012-06-19T12:50:51.273 に答える
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、使用します

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
于 2012-06-19T12:58:10.613 に答える
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) を追加して、不明な (私にとって) var を「サニタイズ」しました

于 2012-06-19T12:52:25.423 に答える