繁体   English   中英

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

[英]Database design: How to query multiple to multiple table

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

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

像这样的设计: 餐桌设计

  • 表[ExhibitionType]用于区分类别。

  • 表[ExhibitionBase]用于链接额外的Sub-Type表和不同表中的数据。

我的网站使用MySQL和PHP

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


编辑1:

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

示例:我希望查询一个数据列表。 首先,我需要像1的筛选器ExhibitionType

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

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

如何使用SQL查询它。

这是我的问题。

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

风格建议:

  • 不要在列名和表名前加上数据库名; 它使事情变得混乱。 (“展览”)
  • 列名与其表名不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM