Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Длинный SQL Запрос

Длинный SQL Запрос


     24.08.2013    Длинный SQL Запрос    Общие вопросы по PHP, MySQL    2285

вопрос
Всем привет, подскажите пожалуйста как правильно прописать SQL запрос из нескольких разных таблиц?

Сейчас у меня вот такой запрос:

$db->query("SELECT p.id as pid, p.date as pdate, p.title as ptitle, p.category as pcategory, p.alt_name as palt_name, l.value as logval, l.date as logdate FROM ".PREFIX."_logs l LEFT JOIN ".PREFIX."_post p ON l.news_id=p.id WHERE l.member='$name' AND p.id ORDER BY l.date DESC LIMIT {$cstart},{$limit}");

но в него ещё нужно добавить это:

pe.rating as perating ".PREFIX."_post_extras pe


как такое можно сделать? очень нужен рейтинг, он содердится в таблице _post_extras

Ответил: kricha


$db->query("SELECT p.id as pid, p.date as pdate, pe.rating as perating, p.title as ptitle, p.category as pcategory, p.alt_name as palt_name, l.value as logval, l.date as logdate FROM ".PREFIX."_logs l LEFT JOIN ".PREFIX."_post p ON l.news_id=p.id, LEFT JOIN " . PREFIX . "_post_extras pe ON p.id  = pe.news_id WHERE l.member='$name' AND p.id ORDER BY l.date DESC LIMIT {$cstart},{$limit}");

7 комментариев

kricha
Юзер

kricha - 24 августа 2013 23:51 -

***Комментарий удален***

pavel31
Юзер

pavel31 - 25 августа 2013 00:51 -

Вот,что пишет:

MySQL error in file: /engine/ajax/rating_profile.php at line 27

Error Number: 1064

The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN dle_post_extras pe ON p.id=pe.news_id WHERE l.member='pavel31' AND p.i' at line 1
SQL query:

SELECT p.id as pid, p.date as pdate, p.title as ptitle, p.category as pcategory, p.alt_name as palt_name, pe.rating as perating, l.value as logval, l.date as logdate FROM dle_logs l LEFT JOIN dle_post p ON l.news_id=p.id, LEFT JOIN dle_post_extras pe ON p.id=pe.news_id WHERE l.member='pavel31' AND p.id ORDER BY l.date DESC LIMIT 0,10

kricha
Юзер

kricha - 25 августа 2013 10:00 -

перед WHERE запятую поставить нужно :)

pavel31
Юзер

pavel31 - 25 августа 2013 12:18 -

Тоже самое :(

Sander
Эксперт

Sander - 25 августа 2013 14:09 -

Что за глупость?
Перед WHERE никогда не ставится запятая.

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

Sander
Эксперт

Sander - 25 августа 2013 14:19 -

$db->query("SELECT p.id as pid, p.date as pdate, pe.rating as perating, p.title as ptitle, p.category as pcategory, p.alt_name as palt_name, l.value as logval, l.date as logdate FROM ".PREFIX."_logs l LEFT JOIN ".PREFIX."_post p ON l.news_id=p.id LEFT JOIN " . PREFIX . "_post_extras pe ON p.id  = pe.news_id WHERE l.member='$name' AND p.id ORDER BY l.date DESC LIMIT {$cstart},{$limit}");

Возле LEFT JOIN тоже не должно быть запятых.

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

pavel31
Юзер

pavel31 - 25 августа 2013 18:56 -

Sander,
Спасибо большое, все работает :)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх