Не нравятся результаты поиска? Попробуйте другой поиск!

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


     24.08.2013    Общие вопросы по PHP, MySQL    1749

вопрос
Всем привет, подскажите пожалуйста как правильно прописать 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
4

60 | 12

kricha - 24 августа 2013 23:51 - Юзер

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

pavel31
4

346 | 158

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
4

60 | 12

kricha - 25 августа 2013 10:00 - Юзер

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

pavel31
4

346 | 158

pavel31 - 25 августа 2013 12:18 - Юзер

Тоже самое :(

Sander
1126

1637 | 1204

Sander - 25 августа 2013 14:09 - Эксперт

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

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

ICQ: 404-037-556
Skype: Sander8804

Sander
1126

1637 | 1204

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
4

346 | 158

pavel31 - 25 августа 2013 18:56 - Юзер

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

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

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