#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 ...