Выборка данных SQL LEFT JOIN

158
08 июля 2018, 04:40

Есть таблицы с такими полями

user

  • id
  • login
  • password

task

  • id
  • title

complete

  • user_id
  • task_id
  • time

Нужно получить список всех заданий, из них определить, какие выполненые пользователем, а какие - нет. Пытался написать вот это:

SELECT
task.id AS id,
task.title AS title,
complete.use_tip AS free_tip,
complete.use_paid_tip AS paid_tip,
(complete.task_id IS NOT NULL) AS complete
FROM task LEFT JOIN complete ON task.id=complete.task_id where 
complete.user_id=3

Но выдаёт только кол-во заданий, которые выполнены пользователем. Если у меня 10 заданий, и пользователь с id=2 выполнил только два, то должна производиться выборка всех 10-ти заданий, а не двух

Answer 1

Решение нашлось довольно быстро:

SELECT
task.id AS id,
task.title AS title,
complete.use_tip AS free_tip,
complete.use_paid_tip AS paid_tip,
(complete.task_id IS NOT NULL) AS complete
FROM task LEFT JOIN complete ON (task.id=complete.task_id AND complete.user_id=3)
READ ALSO
Mysql. В пароле есть &

Mysql. В пароле есть &

В пароле к базе есть &При выполнении mysqldump, выдает следующее :

137
Не работает условие if в цикле foreach

Не работает условие if в цикле foreach

Пытаюсь вывести картинку к таксономии, и, в случае ее отсутствия, выводить photo_noneПочему-то в приведенном ниже примере значение 'imgtax' выводится...

215
yii2 в папке на сайте

yii2 в папке на сайте

Имеется основной сайт siteru

170
Запись в бд mysql

Запись в бд mysql

Подскажите пожалуйста, как в данном примере, данные из массива записывать в бдВ массив они попадают из API в ходе цикла

204