数据库设计:如何查询多个到多个表

时间:2016-07-02 08:52:43

标签: mysql database database-design

我有一个用于网站展览的系统。

展览数据可能来自差异表中的多项数据。

喜欢这个设计: Table Design

  •   

    表[ExhibitionType]用于区分类别。

  •   

    表[ExhibitionBase]用于链接额外子类型表&不同表格中的数据。

我的网站使用MySQL和PHP

现在的问题是我不知道如何查询它。或者这种设计有缺陷。

编辑1:

对不起,我没有表达我的意图。

示例:我希望查询数据列表。首先我需要过滤器ExhibitionType,如1。

所以我需要创建一个像:SELECT * FROM ExhibitionBase WHERE ExhibitionTypeId = 1

这样的SQL

第二步我必须阅读ExhibitionDataTypeExhibitionDataId每行数据。并根据不同类型的ExhibitionData数据合并到ExhibitionBase子表中。

如何使用SQL查询它。

这是我的问题。

1 个答案:

答案 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

风格建议:

  • 不要使用数据库名称为列名和表名添加前缀;它使事情变得混乱。 ( “展”)
  • 没有与其表名相同的列名。