@usanjar
php beginner

Как составить MySql запрос выборка по двум таблицам с условием?

есть таблица notification (id,text,date) и notification_read (notification_id,user_id,date) когда пользователь открывает уведомление добавляется запись в таблицу notification_read. Нужно выбрать таблицу notification и рядом добавить колонку read (yes,no) если клиент прочитал тогда yes иначе no. Вот что я писал)
select n.id, text, n.date, (case nr.user_id when 78 then 'yes' else 'no' end) as 'read' from notification as n left join notification_read as nr on n.id=nr.notification_id where type=78 group by n.id;
не работает.
sqlfiddle.com/#!9/9a091d
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
@usanjar Автор вопроса
php beginner
пока нашел такое решение
select 
  n.id,
  n.text,
  case when nr.notification_id is null then 'no' else 'yes' end as 'read'
from notification as n 
left outer join notification_read as nr 
  on n.id = nr.notification_id AND nr.user_id = 78;

sqlfiddle.com/#!9/9a242e/12
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
select n.id, n.text, n.date, (case when nr.notification_id is null then 'no' else 'yes' end) as 'read' 
	from notification as n 
	left join notification_read as nr 
		on n.id=nr.notification_id 
	--where type in ('global', 78822) --не понял, что это
	--group by n.id; --Это как бы не надо
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы