これにはちょっとだけ指示が必要です。私は、次の表を持っている:私が欲しいものMySQL動的にマージする/選択する行を選択
Table: entity
- ID (INT)
Table: attributes
- ID (INT)
- name (VARCHAR)
- internalname (VARCHAR)
Table: values
- ID (INT)
- entity (ID)
- attributes (INT)
- value (Text)
は、次のようなものを返します選択なステートメントを作ることです。
- ID = entity.ID
- {attributes.internalname ID 1} = values.{attribe internalname 1}.value
- {attributes.internalname ID 2} = values.{attribe internalname 2}.value
- {attributes.internalname ID 3} = values.{attribe internalname 3}.value
- {attributes.internalname ID n} = values.{attribe internalname n}.value
- etc...
それは組み合わせのように次のようになります。
SELECT entity.id FROM entity;
および
SELECT (SELECT values.value FROM values WHERE values.entity = entity.ID AND values.attributes = attributes.ID) FROM attributes;
説明は難しいことですが、私にさらに説明が必要な場合は、教えてください。
属性のすべての値を列に変換し、すべての値をセレクタとしてIDを持つ対応する属性の値に変換することが効果的です。
私はクエリにID(要素ID)を与え、1つの結果行ですべてのデータを返します。
ありがとうございました!
値のテーブルに既に格納されている1つの列のみのテーブルエンティティが存在する理由がわかりません – cfEngineers
インデックスと同じように、いくつかの列が表示されることがあります。これはMagento Commerceがデータを格納する方法と実際に非常によく似ていますが、問題は数百のクエリを使用して同じ結果を得ることです。 – Nitroware