2016-05-12 97 views
-4

我的數據庫有四個表,分別是物理,化學,生物和數學。每個表都具有相同的列名,例如studentName,registrationNumber,mark。 我的問題是,當我用registrationNumber進行搜索時,我想要在每個表格中獲得標記的每個字段。我如何查詢這種方式?請用簡單的例子來解釋它。在此先感謝(這個例子僅僅是隻對問題提出的目的)你如何選擇mysql中的所有表和所有字段?

+1

你可以顯示你的數據庫結構嗎? –

+1

你應該重新組織你的表格結構,使所有課程只有一張桌子,並且所有學生都有一張桌子。您可以將這些鏈接到另一個表格中,並以這種方式輕鬆管理和搜索信息。這使得它很容易添加課程... – jeroen

+1

爲什麼這個問題得到upvote,超越了我。 –

回答

0

您應該使用正常化存儲在單個表標記,而不是使不同的表每個科目的Normalization

1

我同意@NareshKumar實現關係正常化是一種選擇。但是,如果你必須使用你的當前架構,你可以做一個UNION查詢:

SELECT studentName, registrationNumber, mark, 'physics' AS class 
FROM physics 
WHERE registrationNumber = N 
UNION ALL 
SELECT studentName, registrationNumber, mark, 'chemistry' AS class 
FROM chemistry 
WHERE registrationNumber = N 
SELECT studentName, registrationNumber, mark, 'biology' AS class 
FROM biology 
WHERE registrationNumber = N 
SELECT studentName, registrationNumber, mark, 'maths' AS class 
FROM maths 
WHERE registrationNumber = N 
1

看來,我們有同樣的想法與@Tim Biegeleisen和他做的更好,所以我只是您重定向到his answer

+0

您應該爲每個查詢添加一個計算列,以確定每個記錄來自哪個類表。 –

+0

你是對的先生。我修改了我的答案以指向你的答案。 – george007

相關問題