こんばんは、私は Web プログラミングの初心者で、SQL クエリに固有の問題を解決するためにあなたの助けが必要です。私が使用しているデータベース エンジンは MySQL で、PHP 経由でアクセスします。ここでは、アイデアを修正するために、単純化したバージョンのデータベースについて説明します。teams
、teams_information
、の 3 つのテーブルを含むデータベースで作業するとしますattributes
。より正確に:
1)teams
は、イタリアのサッカー チーム (アメリカン フットボールではなく、サッカー) に関するいくつかの基本的な情報を含むテーブルで、次の 3 つのフィールドで構成されています: 'id' ( int, primary key)
, 'name' (varchar, チーム名), nickname
( Varchar
, チーム ニックネーム) ;
2)は、 (チームがホーム マッチを行う都市)、(チーム キャプテンのフルネーム)、(ファンの数)attributes
など、サッカー チームに関する可能な情報のリストを含むテーブルです。このテーブルは、 id 、( 、属性の識別子)、(テキスト、属性の意味の説明) の3 つのフィールドで形成されます。このテーブルの各レコードは、サッカー チームの 1 つの可能な属性を表します。city
captain
f_number
(int, primary key)
attribute_name
varchar
attribute_desc
3)teams_information
は、表にリストされているチームに関するいくつかの情報team
が利用可能な表です。このテーブルには、id ( int
、主キー)、team_id
( int
、チームを識別する外部キー)、 attribute_id
( 、テーブルint
にリストされた属性の 1 つを識別する外部キー)、 ( 、属性の値) の 3 つのフィールドが含まれます。各レコードは、1 つのチームの 1 つの属性を表します。一般に、チームが異なれば情報の数も異なるため、一部のチームでは多数の属性を使用できますが、他のチームでは少数の属性しか使用できません。attributes
attribute_value
varchar
と の関係は 1 対多であり、との間teams
にteams_information
は同じ関係が存在することに注意してください。attributes
teams_information
さて、このモデルを考えると、私の目的は (おそらく ExtJS 4.1 を使用して) グリッドを実現してイタリアのサッカー チームのリストをユーザーに表示することです。このグリッドの各レコードは単一のサッカー チームを表し、すべての可能な属性を含みます。空 (考慮されたチームの場合、対応する属性が不明であるため) であり、その他の属性にはteams_information
(考慮されたチームの) テーブルに格納された値が含まれます。上記のグリッドのフィールドによると、id、team_name、および「属性」テーブルにリストされているすべての異なる属性を表す多数のフィールドがあります。
私の質問は: SINGLE SQL クエリ (SELECT
データベース テーブルから必要なすべてのデータを取得するための適切なクエリ) を使用して、このようなグリッドを実現できますか? 同様のクエリを作成する方法を誰かに提案できますか (存在する場合)。
助けてくれてありがとう。
よろしく。
エンリコ。