2010-06-15 59 views

回答

7

您正在尋找的操作是UNIONUNION ALL

SELECT * FROM (
SELECT col1, col2 FROM table1 
UNION ALL 
SELECT col1, col2 FROM table2 
UNION ALL 
SELECT col1, col2 FROM table3 
) all_tables 
WHERE all_tables.col1 = 'something' 

如果使用UNION而非UNION ALL,該數據庫將消除重複行可能在多個表中。如果您知道不會有任何重複項,請使用UNION ALL,因爲它通常快得多。

1
Select myColumn FROM Table1 
UNION Select myColumn FROM Table2 
UNION Select myColumn FROM Table3 

...等

- 請注意所有列名必須是相同的,必須在每個表這個工作

1

你甚至不會需要一個存儲過程。 ..只是使用聯合查詢。

select field1, field2 from table1 where table1.field1=criteria 
union 
select field1, field2 from table2 where table2.field1=criteria 
union 
select field1, field2 from table3 where table3.field1=criteria 
etc... 
+0

但是您的查詢可以放在存儲過程中。您不應該將查詢與sproc進行比較,查詢會進入可添加安全層的sprocs中。所以他/她可能想把這個放到一個sproc中。 – JonH 2010-06-15 18:33:33

相關問題