2016-07-02 113 views
0

我有一個用於網站展覽的系統。數據庫設計:如何查詢多個表到多個表

展覽數據可能來自差異表中的多個數據。

喜歡這樣的設計:[ExhibitionType]用於分化類別 Table Design

  • 表。

  • 表[ExhibitionBase]用於鏈路額外子類型表中不同的表&數據。

我的網站使用MySQL和PHP

現在的問題是我不知道如何查詢。或者這個設計有缺陷。


編輯1:

我很抱歉,我沒有表達我的意圖。

例如:我希望查詢數據列表。首先我需要過濾ExhibitionType像1

所以我需要創建像SQL:SELECT * FROM ExhibitionBase WHERE ExhibitionTypeId = 1

,二步我必須閱讀ExhibitionDataTypeExhibitionDataId每一行數據。並根據不同類型的ExhibitionData數據合併到ExhibitionBase子表中。

如何使用SQL查詢它。

這是我的問題。

+1

有很多事情你可以在這裏查詢。你能否通過分享一些樣本數據和你試圖得到的結果來澄清這個問題? – Mureinik

+0

@Mureinik謝謝提醒。 – Alex

+0

你的意思是「沒關係」?如果是這樣,請刪除該問題。 –

回答

0
SELECT b.*, dt.Name, di.name 
    FROM ExhibitionBase AS b 
    JOIN ExhibitionDataType AS dt ON dt.id = b.ExhibitionDataType 
    JOIN ExhibitionDataId AS di ON di.id = b.ExhibitionDataId 
    WHERE ExhibitionTypeId = 1 

風格建議:

  • 不要用數據庫名前綴列和表名;它使事情混亂。 (「展覽」)
  • 沒有與表名相同的列名。
+0

謝謝你的建議。 – Alex