проблемка с LEFT JOIN

Obick

Новичок
проблемка с LEFT JOIN

Добрый вечер, господа!
Давно не было случая составлять запросы, а тут пришлось, помогите, пожалуйста, освежить память.

Есть 2 таблицы:
pages (key - pages_id ) + есть еще поле условия parent_id ну и т.д.
user_pages (key - pages_id, user_id )

Нужно получить таблицу с полями из обоих таблиц, в которой были бы все записи из pages, удовлетворяющие условию parent_id = 2, к примеру, и там, где user_id = 555 или user_id = null, если записей для юзверя нет в user_pages вообще.
Дальше вот этого не могу продвинуться (запрос, понятно, не работает как нужно):

SELECT
*
FROM
pages
LEFT JOIN
user_pages
ON
pages.id = user_pages.id
WHERE
parent_id = 3
AND
user_id = 555

То есть, хотелось бы получить что-то вроде
id parent_id user_id
4 3 555
5 3 null
 

vonica

Новичок
у тебя случайно не ошибка после ON

почему то поля не соответствуют заявленным выше

pages.id = user_pages.id

вроде так нужно

pages.pages_id = user_pages.pages_id

Работать вроде должно
 

Obick

Новичок
Не работает LEFT OUTER JOIN :-(
vonica, это не ошибка, просто описка, смысл от этого не меняется...
SQL не работает не в смысле ошибки, в смысле что не возвращает то, что нужно.
 

akd

dive now, work later
Команда форума
тебе надо
[SQL]WHERE
A.parent_id = 3
AND (B.user_id IS NULL OR B.user_id = 555)[/SQl]

.. если я все правильно понял..
 

Obick

Новичок
Автор оригинала: akd
тебе надо
[SQL]WHERE
A.parent_id = 3
AND (B.user_id IS NULL OR B.user_id = 555)[/SQl]

.. если я все правильно понял..
не работает. Выбирается одна запись из 4х возможных.
 

akd

dive now, work later
Команда форума
Obick, значит 3 остальные из 4 не отвечают условиям.
измени условия так, чтобы отвечали записям твоим.
я лично, незнаю, что должно выбираться а что нет.
 
Сверху