大家晚上好,我是 Web 编程的新手,我需要你的帮助来解决 SQL 查询固有的问题。我使用的数据库引擎是 MySQL,我通过 PHP 访问它,这里我将解释我的数据库的简化版本,只是为了修正想法。让我们假设使用包含三个表的数据库:teams
, teams_information
, attributes
。更确切地说:
1)teams
是一个包含有关意大利足球队的一些基本信息的表格(足球,而不是美式足球:D),它由三个字段组成:'id' ( int, primary key)
, 'name' (varchar, 球队名称), nickname
( Varchar
, 球队昵称) ;
2)attributes
是一个表格,其中包含有关足球队的可能信息列表,例如city
(球队主场比赛所在的城市)、captain
(球队队长的全名)、f_number
(球迷人数)等。该表由三个字段组成: id (int, primary key)
, attribute_name
( varchar
, 属性的标识符), attribute_desc
(text, 属性含义的解释)。该表的每条记录代表一个足球队的单个可能属性;
3)teams_information
是一个表格,其中包含有关表格中列出的团队的一些信息team
。该表包含三个字段:id ( int
, 主键), team_id
( int
, 标识团队的外键), attribute_id
( , 标识表中int
列出的属性之一的外键), ( , 属性值)。每条记录代表单个团队的单个属性。一般来说,不同的团队会有不同数量的信息,因此对于某些团队,大量的属性可用,而对于其他团队,只有少量的属性可用。attributes
attribute_value
varchar
请注意,teams
和之间的关系teams_information
是一对多的,并且在attributes
和之间存在相同的关系teams_information
好吧,给定这个模型,我的目的是实现一个网格(可能使用 ExtJS 4.1)来向用户显示意大利足球队的列表,这个网格的每条记录将代表一个足球队并包含所有可能的属性:一些字段可能是空(因为对于考虑的团队,对应的属性是未知的),而其他将包含存储在teams_information
表中的值(对于考虑的团队)。根据上面网格的字段有:id、team_name 和一些字段来表示'attributes'表中列出的所有不同的属性。
我的问题是:我可以通过使用 SINGLE SQL 查询(也许是一个适当的SELECT
查询,从数据库表中获取我需要的所有数据)来实现这样的网格吗?谁能建议我如何编写类似的查询(如果存在)?
提前感谢您帮助我。
问候。
恩里科。