У меня есть 3 таблицы с именем «A», «B» и «C» со столбцами «Имя», «Roll_No» и «Age». Я хочу найти строку, ссылающуюся на столбцы «Roll_No», но я не знаю, в какой таблице находится желаемая строка. Мне нужен оператор SQL, который вернет строку вместе с соответствующим именем таблицы.SQL-запрос
ответ
Попробуйте это, если вам нужно указать ИНЕКЕ один раз:
SELECT *
FROM
(SELECT Name, Roll_No, Age, 'A' AS TableName
FROM A
UNION
SELECT Name, Roll_No, Age, 'B'
FROM B
UNION
SELECT Name, Roll_No, Age, 'C'
FROM C) Tbl
WHERE Roll_No = [value]
Единственная проблема с этим - это не лучшая производительность по сравнению с версией, которая не использует подзапросы и несколько вариантов выбора. – jfun
Thank You Vardan Shahinyan Sir –
использование union
, как показано ниже:
select Name, Roll_No, Age ,'A' as table_name from A where Roll_No=--the value
union
select Name, Roll_No, Age ,'B' as table_name from B where Roll_No=--the value
union
select Name, Roll_No, Age ,'C' as table_name from C where Roll_No=--the value
Спасибо Farheg Sir –
приветствуется bro – jfun
Это не способ задать вопрос здесь. обеспечивают DDL/DML и ожидаемый результат выборки – ninjabber
Также, вероятно, не относится к этому вопросу, вы всегда должны добавлять тег для используемой СУБД. Postgres, Oracle, DB2, ... –