2012-12-06 162 views
1

我在数据库的不同表中有3列。表名和数字可以是任何东西,所以我不能写查询来从这三列中获取数据。如何从数据库中的所有表中获取数据

查询:

SELECT first_name, last_name 
FROM (table names) 
WHERE email="[email protected]" 

请帮助我。

感谢,

爱德华

+2

你有试过什么吗? – Ric

+2

您是否想要获得所有这些表的联合?那么你应该看看工会关键字 – Kek

+1

http://stackoverflow.com/questions/4232626/posgresql-how-to-union-3-tables-sorted-by-date – Lojko

回答

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="[email protected]" 
2

您可以动态建立你的SQL语句。一个类似于:

DECLARE @SQL VARCHAR(4000)

SET @SQL = 'SELECT名字,姓氏FROM ....等'

EXEC(@SQL)

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

相关问题