I имеют структуру таблицы, как описано ниже:Объединение таблиц 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 JOINs, но это не работает динамически.
Я мог бы создать PHP-скрипт, который будет генерировать SQL, но должен быть способ сделать запрос, который работает динамически.
Последнее предложение @Prdp его ответ лучший путь , Ознакомьтесь с [нормализацией данных] (https://en.wikipedia.org/wiki/Database_normalization), чтобы понять, почему и когда вы разделяете столбцы на разные таблицы. – davejal
SELECT * .values, key.keys, name.persons ИЗ значений LEFT JOIN ключи НА values.key_id = keys.id LEFT JOIN лиц НА values.person_id = persons.id – user1544541
Как вы решить эту проблему? У меня такая же ситуация: https://stackoverflow.com/questions/44445013/pdo-normalizing-mysql-tables?noredirect1_comment75888296_44445013 – user1286956