大家晚上好,我是 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列出的属性之一的外键), ( , 属性值)。每条记录代表单个团队的单个属性。一般来说,不同的团队会有不同数量的信息,因此对于某些团队,大量的属性可用,而对于其他团队,只有少量的属性可用。attributesattribute_valuevarchar
请注意,teams和之间的关系teams_information是一对多的,并且在attributes和之间存在相同的关系teams_information
好吧,给定这个模型,我的目的是实现一个网格(可能使用 ExtJS 4.1)来向用户显示意大利足球队的列表,这个网格的每条记录将代表一个足球队并包含所有可能的属性:一些字段可能是空(因为对于考虑的团队,对应的属性是未知的),而其他将包含存储在teams_information表中的值(对于考虑的团队)。根据上面网格的字段有:id、team_name 和一些字段来表示'attributes'表中列出的所有不同的属性。
我的问题是:我可以通过使用 SINGLE SQL 查询(也许是一个适当的SELECT查询,从数据库表中获取我需要的所有数据)来实现这样的网格吗?谁能建议我如何编写类似的查询(如果存在)?
提前感谢您帮助我。
问候。
恩里科。