Есть 2 таблицы:
1) Quests {id - идентификатор; title, prize - определенная информация}
2) QuestsActive {questid - идентификатор верхней таблицы, userid - идентификатор пользователя}
Нужно составить такой SQL запрос:
Если найдены пересечения таблицы Quests и QuestsActive (то есть если Quests.id = QuestsActive.questid при заданном QuestsActive.userid), то создаем колонку и добавляем туда 1, если пересечений не найдено, то создаем колонку и добавляем туда 0;
На выдаче я должен получить все записи из таблицы Quests с title, prize и новой колонкой со значениями 0/1
Как я могу это сделать?
Не совсем понял про "создание столбца", но вот запрос, который выведет необходимую информацию:
SELECT Quests.*, CASE WHEN ActiveQuests.Id > 0 THEN 1 ELSE 0) AS isActive
FROM Quests
LEFT JOIN ActiveQuests ON Quests.Id = ActiveQuests.Id AND ActiveQuests.UserLogin = 'user'
ORDER BY Quests.Id
Это вероятнее всего то, что мне нужно, только у тебя синтаксическая ошибка как минимум потому, что скобка не открыта, а закрывающаяся есть, как правильно их поставить?
SELECT Quests.*, (CASE WHEN ActiveQuests.Id > 0 THEN 1 ELSE 0 END) AS isActive
FROM Quests
LEFT JOIN ActiveQuests ON Quests.Id = ActiveQuests.Id AND ActiveQuests.UserLogin = 'user'
ORDER BY Quests.Id