SELECT
T.`quote_id`, T.`content`, T.`author`, T.`source`, T.`year`,
TA.`name` AS `author_name`,
TK.`word_id`, TK.`keyword`,
FROM `quotes` AS T
JOIN `authors` AS TA
ON T.`author` = TA.`id`
JOIN `keywords_to_quotes` AS TT
ON T.`quote_id` = TT.`quote_id`
JOIN `keywords` AS TK
ON TT.`word_id` = TK.`word_id`
WHERE T.`quote_id`={$this->id}
Как можно догадаться, он вытягивает данные по цитате, включая автора (авторы хранятся в отдельной таблице, в таблице квот только айди) и кейворды (типа теги, структура стандартная).
Еще есть таблица избранных цитат пользователя (`favorites`) со структурой | id | user_id | quote_id |
Вопрос следующий: как нужно изменить этот запрос, чтобы при получении данных было поле, говорящее о том, включена ли данная цитата в список избранных у юзера.
Если делать тупо так:
SELECT
T.`quote_id`, T.`content`, T.`author`, T.`source`, T.`year`,
TA.`name` AS `author_name`,
TK.`word_id`, TK.`keyword`,
TF.`id`
FROM `quotes` AS T
JOIN `authors` AS TA
ON T.`author` = TA.`id`
JOIN `keywords_to_quotes` AS TT
ON T.`quote_id` = TT.`quote_id`
JOIN `keywords` AS TK
ON TT.`word_id` = TK.`word_id`
JOIN `favorites` AS TF
ON T.`quote_id` = TF.`quote_id`
WHERE T.`quote_id`={$this->id}
то при отсутствии данных в таблице избранных вообще будет пустая строка.