我在数据库的不同表中有 3 列。表名称和编号可以是任何内容,因此我无法编写查询来从这三列中获取数据。
查询:
SELECT first_name, last_name
FROM (table names)
WHERE email="someting@someting.com"
请帮我解决一下这个。
谢谢,
爱德华
您可以动态构建 SQL 语句。类似于:
声明 @SQL VARCHAR(4000)
SET @SQL = 'SELECT first_name, last_name FROM .... etc'
执行 (@SQL)
因此,假设您要使用的表名作为参数传入或以其他方式从某处查找,您可以将它们包含在您在@SQL 变量中构建的查询中。
你可以这样做:
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"