Помогите переделать запрос

virakochi

Устал
Помогите переделать запрос

Структура таблиц такая:
deposits_to_periods:
deposits_to_periods_id | deposits_id | deposits_to_periods_period

deposits_salaries:
deposits_salaries_id | deposits_id | deposits_currencies_id | deposits_periods_id | deposits_salaries_value


Мне необходимо выбрать все тройки (с пустым третьим элементом также) deposits_to_periods_id, deposits_to_periods_period, deposits_salaries_value (соединение именнно тем атрибутам как в запросе) для некоторых deposits_id и deposits_currencies_id.
Мой запрос не выдает результат для пустого третьего элемента, т.е. когда в таблице deposits_salaries нету записей с заданным deposits_currencies_id.


SELECT a.deposits_to_periods_id, a.deposits_to_periods_period, b.deposits_salaries_value FROM deposits_to_periods a LEFT JOIN deposits_salaries b ON a.deposits_to_periods_id=b.deposits_periods_id WHERE a.deposits_id=1 AND b.deposits_currencies_id=1 ORDER BY a.deposits_to_periods_period ASC
 

Tikrim

Guest
SELECT a.deposits_to_periods_id, a.deposits_to_periods_period, b.deposits_salaries_value FROM deposits_to_periods a LEFT JOIN deposits_salaries b ON a.deposits_to_periods_id=b.deposits_periods_id AND b.deposits_currencies_id = 1 WHERE a.deposits_id=1 ORDER BY a.deposits_to_periods_period ASC

Поробуй так
 

virakochi

Устал
Спасибо. Все ок.

-~{}~ 29.06.04 17:06:

Только не пойму, почему не работал пример из мана, и как влияет вторая часть условия соединения?

SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id WHERE table2.id IS NULL

This example finds all rows in table1 with an id value that is not present in table2 (that is, all rows in table1 with no corresponding row in table2). This assumes that table2.id is declared NOT NULL, of course
 
Сверху