синтаксическая ошибка php mysql

#php #mysql #sql

#php #mysql #sql

Вопрос:

Я борюсь с синтаксической ошибкой, и я действительно не могу найти проблему.

это мой запрос

  $res2 = mysql_query("SELECT * FROM wp_postmeta PM1
                      WHERE PM1.meta_key = '_pronamic_google_maps_latitude'
                      AND PM1.post_id = '$id'
                      JOIN wp_postmenta PM2 
                      WHERE PM2.post_id = PM1.post_id 
                      AND PM2.meta_key = '_pronamic_google_maps_longitude'")
         or die(mysql_error());
  

и получение этой ошибки:

У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘JOIN wp_postmeta PM2’ в строке 3

не мог бы кто-нибудь, пожалуйста, дать мне подсказку, чего мне не хватает?

Комментарии:

1. Сообщение об ошибке, похоже, не соответствует показываемому вами запросу

2. Я думаю, у вас может возникнуть проблема с AND PM1.post_id = '$id' если $id это фактическое значение в вашей таблице. Вы пробовали AND PM1.post_id = ". $id ?

Ответ №1:

Сначала должно произойти соединение, затем остальная часть запроса. Итак, что-то вроде

  $res2 = mysql_query("SELECT * FROM wp_postmeta PM1
                                  JOIN wp_postmenta PM2 on PM1.post_id = PM2.post_id
                                  WHERE PM1.meta_key = '_pronamic_google_maps_latitude'
                                  AND PM1.post_id = '$id'
                                  AND PM2.meta_key = '_pronamic_google_maps_longitude' 
                                   ") or die(mysql_error()) ;
  

Ответ №2:

У вас два предложения where и неправильный порядок соединения:

 select ...
from ...
join ... on ...
where ... and ...