Как отфильтровать записи с помощью оператора JOIN и WHERE? - PullRequest
0 голосов
/ 04 августа 2011

Мой запрос

SELECT table1.name, table2.wage, table2.bonus table3.shift, table4.vacation
   FROM table1
INNER JOIN table2 ON table1.userid = table2.userid
INNER JOIN table3 ON table2.userid = table3.userid
INNER JOIN table4 ON table4.userid = table4.userid 
LEFT JOIN table5 ON table1.name = table5.position
**LEFT JOIN vacation on vacation.userid = table1.userid
WHERE vacation.userid IS NULL**;

Выбирает все, где ИД пользователя НЕ находится внутри таблицы отдыха.

Теперь мне нужно проверить, есть ли ИД пользователя в таблице каникул, и если vacation.status = 1 для этого userid все равно должно отображаться в запросе.

1 Ответ

1 голос
/ 04 августа 2011

Если это отдельный запрос / требование, то будет работать следующий запрос:

SELECT table1.name, table2.wage, table2.bonus table3.shift, table4.vacation
   FROM table1
INNER JOIN table2 ON table1.userid = table2.userid
INNER JOIN table3 ON table2.userid = table3.userid
INNER JOIN table4 ON table4.userid = table4.userid 
INNER JOIN vacation on vacation.userid = table1.userid
LEFT JOIN table5 ON table1.name = table5.position
WHERE vacation.status = 1;

Если вам нужны оба требования (идентификатор пользователя равен NULL или status = 1), попробуйте это:1005 *

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