2014-12-03 3 views
1

у меня есть это работает отлично:ИНЕКЕ перед тем LEFT JOIN не работает

$sql = $mysqli->query("SELECT posts.*, members.username, categories.category_name 
         FROM posts 
         LEFT JOIN members 
          ON posts.post.by = members.id 
         LEFT JOIN categories 
          ON posts.post_category = categories.category_id 
         ORDER BY posts.post_date DESC 
         LIMIT $start, $limit 
         "); 

Но я хочу, чтобы это условие WHERE к нему:

WHERE posts.post_by = 1 

Я не могу понять, как правильно сделать он, я попытался разместить его в конце, до LIMIT, после сообщений FROM, но результаты возвращаются пустыми.

+0

Вы подтвердили, вы на самом деле имеете запись в таблице сообщений с идентификатором 1? –

+0

Зачем мне это нужно? условие должно получить записи, где столбец post_by = 1 –

+0

У вашего сообщения есть синтаксическая ошибка ... должно быть 'post_by', а не' post.by', и это то, что я имею в виду, столбец posts.post_by, имеющий значение of 1 (members_id) –

ответ

2

Предложение where идет после from:

    SELECT posts.*, members.username, categories.category_name 
        FROM posts 
        LEFT JOIN members 
         ON posts.post.by = members.id 
        LEFT JOIN categories 
         ON posts.post_category = categories.category_id 
        WHERE posts.post_by = 1 
        ORDER BY posts.post_date DESC 
        LIMIT $start, $limit; 

В join s является частью пункта from, поэтому я отступ запросов, как:

    SELECT posts.*, members.username, categories.category_name 
        FROM posts LEFT JOIN 
         members 
         ON posts.post.by = members.id LEFT JOIN 
         categories 
         ON posts.post_category = categories.category_id 
        WHERE posts.post_by = 1 
        ORDER BY posts.post_date DESC 
        LIMIT $start, $limit; 
+3

Вы имеете в виду после присоединения. –

+1

@juergend. , , Нет, я имею в виду после «от». 'join' не являются предложением в SQL, они являются выражением в предложении 'from'. –

+0

Yup, после того, как присоединились работы, я помету его как ответ за 6 минут. –

Смежные вопросы