2012-02-25 60 views
0

我在一個數據庫中約20桌,有相同的列名,即查詢具有相同的列名多個表

TeacherName,主題類,等等

現在我想查詢所有一次到表顯示所有的老師姓名行說:「約翰特拉沃爾塔」

我該怎麼做?我在一些帖子中看到UNION是一種方法,但由於有20個或更多的表格,我想要是否有更好的方法來做到這一點...

btw我在使用SQL SERVER COMPACT WEBMATRIX ....

回答

2

除了表的所有查詢結果的聯合之外,不能想到一個不同的方式來完成它。 你真的需要問自己的問題是,爲什麼你有這麼多的表中存儲相同的數據的表?我認爲這是一個不好的做法,你應該有一個表中有一個將它們分開的字段,或者甚至是擴展表到不同類型的行。但底線 - 表示相同信息的每個數據應存儲在一個表中。

+0

:謝謝你的回覆。 那麼我實際上有一個大學的20個不同部分的數據,因此定義保持不變... – user1173468 2012-02-25 10:53:35

+1

那麼,爲什麼不把它合併成一個大表,並保留SectionID的外鍵來區分不同部分? – Sagi 2012-02-25 11:14:40

+0

+1爲設計建議。每個部門都有一張桌子並不是一件好事。爲部門/部門創建一個表並使用它在一個表中區分它們是比UNION更好的方法。 – 2012-02-25 12:22:18

0

如果您想以純SQL方式執行操作,則必須使用Union

有一些技巧使用EF,繼承和一些配置,可以讓你通過一個集合訪問具有相同列的幾個表。但我不是這種方法的專家。

此外,您可以將所有表格中的所有列組合起來。但是,SQL Server CE不支持視圖。你可以這樣做,如果你將你的數據庫至少遷移到SQL Server Express。

最後,您可以使用stringbuilder在您的asp.net應用程序中生成您的SQL語句。

+0

謝謝:) Gawd!看起來很多! :P 無論如何非常感謝你的答覆,不好,然後嘗試與聯盟本身合作.... – user1173468 2012-02-25 10:56:18

相關問題