#sql #database
#sql #База данных
Вопрос:
У меня есть идентификатор студента и несколько таблиц в моей базе данных для получения информации о студентах, так что при любом идентификаторе он присутствует только в одной таблице. Каждая таблица имеет атрибут Student id.
Учитывая идентификатор студента, как использовать SQL-запрос, чтобы определить, что в таблице есть информация о студенте с этим идентификатором студента?
Ответ №1:
IF EXISTS(SELECT TOP 1 1 FROM table WHERE studentID = @input)
BEGIN
-- do stuff
END
или немного менее причудливый
IF EXISTS(SELECT TOP 1 studentID FROM table WHERE studentID = @input)
BEGIN
-- do stuff
END
вы также можете создать поисковое представление / запрос. что-то вроде этого:
SELECT sudentID, 'Table1' as Location
FROM 'Table1'
UNION ALL
SELECT sudentID, 'Table2' as Location
FROM 'Table2'
UNION ALL
SELECT sudentID, 'Table3' as Location
FROM 'Table3'
UNION ALL
SELECT sudentID, 'Table4' as Location
FROM 'Table4'
Затем запросите это представление для определения местоположения. Это может быть полезно, если вам нужно объединить
Ответ №2:
Я всего лишь новичок в MySQL, но я бы подошел к проблеме, выбрав * из каждой таблицы по очереди:
выберите * из table
порядка по student_id
;
И затем для каждого student_id посмотрите, имеет ли какая-либо строка, возвращенная из этого выбора, этот student_id.
Да, это полностью грубая сила, и, без сомнения, существует множество более сложных и быстрых решений. Но именно так я бы сделал это на данном этапе моего путешествия по MySQL.
HTH. Требуются лучшие решения, и они очень приветствуются.