我在数据库中的不同表中有3列。表名和数字可以是任何内容,因此我无法编写查询以从这三列中获取数据。
查询:
SELECT first_name, last_name
FROM (table names)
WHERE email="someting@someting.com"
请帮助我。
谢谢,
爱德华
答案 0 :(得分:2)
您可以动态构建SQL语句。类似于:
DECLARE @SQL VARCHAR(4000)
SET @SQL ='SELECT first_name,last_name FROM .... etc'
EXEC(@SQL)
因此,假设您要使用的表名作为参数传入或以其他方式从某处查找,您可以将它们包含在您在@SQL变量中构建的查询中。
答案 1 :(得分:0)
你可以这样做:
SELECT first_name, last_name, FromWhichTable
FROM
(
SELECT first_name, last_name, email, FromWhichTable = 1 FROM table_name1
UNION ALL
SELECT first_name, last_name, email, 2 FROM table_name2
UNION ALL
SELECT first_name, last_name, email, 3 FROM table_name3
) t
WHERE email="someting@someting.com"