4
我有一個表結構如下所述:加入MySQL表與鍵值對
persons
+----+------+
| id | name |
+----+------+
| 1 | Bart |
| 2 | Lisa |
+----+------+
keys
+----+--------+
| id | key |
+----+--------+
| 1 | gender |
| 2 | age |
+----+--------+
values
+----+-----------+--------+--------+
| id | person_id | key_id | value |
+----+-----------+--------+--------+
| 1 | 1 | 1 | male |
| 2 | 1 | 2 | 10 |
| 3 | 2 | 1 | female |
| 4 | 2 | 2 | 8 |
+----+-----------+--------+--------+
,我需要得到結果像這樣的表:
+-----------+------+--------+-----+
| person_id | name | gender | age |
+-----------+------+--------+-----+
| 1 | Bart | male | 10 |
| 2 | Lisa | female | 8 |
+-----------+------+--------+-----+
我可以做到這一點使用LEFT JOIN,但這不起作用。
我可以製作一個PHP腳本來生成SQL,但是必須有辦法讓查詢動態工作。
@Prdp的最後一句他的回答是最好的方法。閱讀[數據規範化](https://en.wikipedia.org/wiki/Database_normalization)瞭解爲什麼以及何時將列拆分到不同的表。 – davejal
SELECT * .values,key.keys,name.persons FROM值 LEFT JOIN鍵 ON values.key_id = keys.id LEFT JOIN你是怎麼解決這個問題的人 ON values.person_id = persons.id – user1544541
?我有類似的情況:https://stackoverflow.com/questions/44445013/pdo-normalizing-mysql-tables?noredirect=1#comment75888296_44445013 – user1286956