私のテーブルをマージ:2つの列が1つになり、他の列は維持されます。その後、別のテーブルで
// friendships
+-----------------+-----------------+-----------------+
| fid | person1 | person2 |
|-----------------+-----------------|-----------------+
+-----------------+-----------------+-----------------+
| 1 | personid | personid |
|-----------------+-----------------|-----------------+
| 2 | personid | personid |
|-----------------+-----------------|-----------------+
// persons
+-----------------+-----------------+-----------------+
| pid | firstname | lastname |
|-----------------+-----------------|-----------------+
+-----------------+-----------------+-----------------+
| 1 | name | name |
|-----------------+-----------------|-----------------+
| 2 | name | name |
|-----------------+-----------------|-----------------+
1)私は、特定のPERSONIDが含まれている友情テーブルのすべての行を取得したいです。このidは、person1またはperson2列のいずれかになります。 fid
列が保存されるべきであるが、person
列が一つだけ、例えば:
Select fid, person1 as person, person2 as person FROM friendships
WHERE person1 = some_personid
OR person2 = some_personid;
(このクエリから2つの列が一つだけであるべきである)であるべきです。それ、どうやったら出来るの?
2)ステップ1の結果の人テーブルに参加したいON fid.person = persons.pid
。
友情関係は対称ですか?私はAがBの友人であり、AのBの友人でもあるということですか? –