我有一個不同的表people
。我想將它們連接到我的house
表如何在MySQL中加入非規格化表格?
house
表:
+-------+---------+---------+---------+
| house | person1 | person2 | person3 |
+-------+---------+---------+---------+
| 1 | 2 | 4 | 1 |
| 2 | 3 | 1 | 2 |
+-------+---------+---------+---------+
people
表:
+----+------+
| id | name |
+----+------+
| 1 | fred |
| 2 | john |
| 3 | leo |
| 4 | tom |
+----+------+
是這樣的可能嗎?
$pdo = $db->query('
SELECT *
FROM house
LEFT JOIN people
ON house.person1=people.id
AND house.person2=people.id
;');
while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
echo "Person 1 = ".$row['name'];
echo "Person 2 = ".$row['name'];
}
請改變你的'房子'表**每行**一人**不是每個人一列_。即一行:'house_id int,person_id int'。這樣,你可以添加新的人到房子裏。使用小組功能來統計每個家庭的人數。聯結更容易將人員與房屋相匹配。 –
你應該規範你的房子桌子,否則你需要加入到人桌子3次。 – Shadow
嘗試使用'OR'而不是'AND'。像'house.person1 = people.id 或house.person2 = people.id' – Manish