Я пытаюсь выполнить запрос и изменить поддельные значения столбца в зависимости от того, возвращают ли внутренние запросы что-либо.
По сути, я хочу, чтобы приведенный ниже код мог изменить WI на 1, если id находится в table2и SI к 1, если id находится в table3
SELECT name, grade, id, 0 as WI, 0 as SI FROM students
WHERE id in table1
AND (id in table2
OR id in table3)
Я гуглял, но ничего не наткнулся, я думаю, в основном потому, что не знаю, как на самом деле называются "поддельные" столбцы.
Любая помощь будет признательна, спасибо!
Редактировать: Данные выглядят примерно так:
name grade id
s1 1 0
s2 1 1
s3 2 7
и цель состоит в том, чтобы что-то подобное пришлопосле запроса:
name grade id WI SI
s1 1 0 0 1
s2 1 1 1 1
s3 2 7 1 0
РЕДАКТИРОВАТЬ 2: Вот мой фактический запрос:
SELECT CARE1.students.first_name, CARE1.students.grade, CARE1.students.id,
CARE1.student_test_info.test_num, CARE1.student_test_info.date_of_testing,
0 as WI, 0 as SI, 0 as OC, 0 as SL
FROM CARE1.students INNER JOIN CARE1.student_test_info ON CARE1.students.id = CARE1.student_test_info.student_id
WHERE id IN (SELECT DISTINCT studentID from CARE1.WI)
AND (id NOT IN (SELECT DISTINCT studentID from CARE1.SI)
OR id NOT IN (SELECT DISTINCT studentID from CARE1.OC))
В основном каждая из таблиц (WI, SI и т. д.) имеет тестовую информацию в них имы стараемся, чтобы все прошли все тесты.Этот запрос дает мне список людей, которые пропустили тест, но не говорит мне, какие тесты они пропустили, это то, что я пытаюсь выяснить.