単純なMySQLテーブル:どのような種類のMySQL参加が必要ですか?テーブル間でID値が一致する
pid: 1
firstname: fred
各人物について複数表2のエントリがある:
がtable 1;
pid, firstname
table 2;
id, pid, property, value
表1に一個のエントリがあると言うことができます
pid: 1
property: likes cats?
value: no
pid: 1
property: eye colour
value: orange
pid: 1
property: favourite food
value: sox
テーブルの2つのエントリのうち、アイカラーと特定の人物IDの食べ物のエントリを選択するだけです。どのような外部結合がこれを達成できますか?
SELECT `t1`.name
FROM `table1` AS t1
LEFT JOIN `table2` t2 ON `t1`.pid = `t2`.pid
WHERE `t1`.pid = 1
AND `t2`.property = 'eye colour'
私はここでスタックされています。テーブル2から2行を取得する方法も好評です。 (誰もが言う前に、私はこのデータベースの構造を変更することはできません)。
読んでいただきありがとうございます。
出力? –
あなたがしようとしているのは、 "エンティティ属性値テーブルのピボット"です。 – biziclop
ええ、誰もがそれを知っている、それは明らかではない; P – jwbensley