簡體   English   中英

如何為沒有連接的多個表編寫 SQL 查詢

[英]How to write a SQL query for multiple tables without join

我有一個包含 ~ 1000 個表的數據庫,其中每個表都有date列。 我想看看 2000 年到 2016 年之間有多少張桌子。

每個表都是一個公司名稱,因此我需要在 2000 年到 2016 年之間獲得資助的所有公司,我需要這個查詢。

我嘗試過類似的東西

SELECT * 
FROM date 
WHERE date BETWEEN 2000 AND 2020;

但問題是,我需要為所有 ~ 1000 張桌子做這件事。

有沒有辦法為 SQL 查詢編寫一個簡單的循環?

謝謝你的幫助。

SELECT *
FROM (
    SELECT CompanyName FROM table1
    UNION
    SELECT CompanyName FROM table2
)
WHERE date BETWEEN 2000 AND 2020

動態查詢如下。 您將所有表名保存在“yourTable”中。

Declare @ID int,
Declare @tableName varchar(50) 
Set @ID =1

While Exists(select * from yourTable where ID <=1000)
BEGIN
    Set @tableName = (Select tableName from yourTable where ID = @ID)

    Select CompanyName from @tableName 
    Where
    date BETWEEN 2000 AND 2020
    + ' UNION ALL '
    
    Set @ID = @ID +1

END 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM