1

我在数据库的不同表中有 3 列。表名称和编号可以是任何内容,因此我无法编写查询来从这三列中获取数据。

查询:

SELECT first_name, last_name 
FROM (table names) 
WHERE email="someting@someting.com"

请帮我解决一下这个。

谢谢,

爱德华

4

2 回答 2

2

您可以动态构建 SQL 语句。类似于:

声明 @SQL VARCHAR(4000)

SET @SQL = 'SELECT first_name, last_name FROM .... etc'

执行 (@SQL)

因此,假设您要使用的表名作为参数传入或以其他方式从某处查找,您可以将它们包含在您在@SQL 变量中构建的查询中。

于 2012-12-06T09:13:22.217 回答
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"
于 2012-12-06T09:02:57.420 回答