言葉足らずな質問で申し訳ありません。例と私がこれまでに思いついたものを通して最もよく説明されています:
テーブル「myInfo」には次の列があります。
1. id (PK)
2. key
3. value
4. metaId
テーブル「メタ」には次の列があります。
1. id (PK)
2. metaName
3. metaValue
4. instanceNum
「myInfo」テーブルの metaId は、「meta」テーブルの instanceNum に関連付けられます。"value" 列の値は、metaId を持つ別の行で変わることがあります。metaId は、「メタ」テーブルのタイムスタンプ値へのリンクと考えてください (「タイムスタンプ」とその値は、それぞれ metaName 列と metaValue 列に入ります)。
「myInfo」の「値」列の個別の値を選択したい。これまでのところ、私は持っています:
SELECT DISTINCT mi.key, mi.value
FROM myInfo as mi JOIN metadata as meta
WHERE mi.metaId=meta.instanceNum
AND meta.key = 'timestamp'
AND mi.key='maxWeight';
しかし、これらの値に関連付けられたタイムスタンプも必要です。だから私は出力を次のようにしたい:
キー値のタイムスタンプ maxWeight 10 トン 15:00:05 2011-01-01 maxWeight 5 トン 08:00:07 2011-10-12 maxWeight 25 トン 13:05:09 2013-08-01
タイムスタンプによってすべての行が一意になるため、タイムスタンプを SELECT の列の 1 つとして配置することはできません。mi.attrValue のみの後ろに DISTINCT キーワードを配置しようとしましたが、MySQL エラーが発生しました。