2012-06-19 4 views
2

Интересно, может ли кто-нибудь помочь мне.Group By & Where MySQL Query

Я использую следующий запрос, чтобы правильно получить данные маркера Google из базы данных MySQL.

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.

+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" неизвестная (для меня) вар

+0

Hi @Luis Siqot, спасибо, что нашли время, чтобы ответить на мой пост и помочь. Я попробовал вам предложенный код, и, к сожалению, мне не удалось заставить запрос работать. Однако я принял более ранние предложения, так как это работает абсолютно нормально. С наилучшими пожеланиями, – IRHM

+0

все мы здесь, чтобы помочь, обратите внимание, что мой андерсор такой же, как и ваш принятый 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 то и 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

Привет @Фахим Паркар, спасибо, что нашли время, чтобы помочь мне в этом. Вы предлагаете фактически отразить другой ответ, который я получил, и он отлично работает. С уважением – IRHM

+1

не проблема .. вы можете принять ответ dcp .. –

+0

Большое спасибо. С уважением – IRHM