@ko121

Как составить запрос MySQL?

Есть такой запрос:
SELECT appeals.id, appeals.authorId, appeals.text, appeals.answer, appeals.joins, appeals.supports, appeals.dislikes, receivers.code, receivers.name_ru FROM appeals LEFT JOIN receivers ON appeals.toId = receivers.id WHERE appeals.lang = 'ru';


Есть 3 таблицы:
- joins
- supports
- dislikes

Все таблицы имеют следующую структуру:
id, authorId, appealId

Задача:
К запросу, который я привел в начале вопроса, дописать что нужно для того, чтобы в ответе было видно, нажимал ли на кнопку пользователь join, support или дизлайк.

P.S: пользователь может нажимать на все 3 кнопки
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
@ko121 Автор вопроса
Нашел решение сам:

SELECT
    appeals.id, appeals.text, appeals.answer, appeals.joins, appeals.supports, appeals.dislikes, receivers.code, receivers.name_ru,
    EXISTS(SELECT * FROM joins j WHERE j.appealId = appeals.id and j.autorId = 1) AS isJoined,
    EXISTS(SELECT * FROM supports s WHERE s.appealId = appeals.id and s.autorId = 1) AS isSupported,
    EXISTS(SELECT * FROM dislikes d WHERE d.appealId = appeals.id and d.autorId = 1) AS isDisliked
FROM appeals
	LEFT JOIN receivers ON receivers.id = appeals.toId
WHERE appeals.lang = "ru"
ORDER BY appeals.id DESC;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
просто дописать джойны всех трёх таблиц
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы