У меня есть две таблицы для простоты таблицы A и таблицы B (обратите внимание, что я не имею права изменять структуру этих таблиц, поэтому я «Я задаю этот вопрос, чтобы обойти плохой дизайн базы данных».Связывание нескольких строк из таблицы B с одной строкой в таблице A в MySQL
Таблица А имеет две колонки:
"id" - is the unique identifier.
"customer_id" - is the customer's ID.
Так таблица А содержит список идентификаторов клиентов.
Таблица B содержит свойства о клиентах. Но это делает это странным образом (опять же, я не задал этого, и я не могу его изменить). Таблица B имеет [число] столбцов:
"id" - is the unique identifier.
"customer_id" - is the customer's ID.
"key" - is the name of the key/value pair
"value" - is the value of the key/value pair
Так таблица B имеет пары ключ/значение, которые связаны с клиентами по их идентификаторам.
Я мог бы присоединиться к этим две таблицы, чтобы получить что-то вроде этого:
+----+-------------+------------+-------+
| id | customer_id | key | value |
+----+-------------+------------+-------+
| 0 | 5 | first_name | Bob |
| 1 | 5 | last_name | Jones |
| 2 | 6 | first_name | Sally |
| 3 | 6 | last_name | Sue |
+----+-------------+------------+-------+
Но как вы можете видеть, что может быть трудно управлять, поскольку информация о одного клиента на двух разных строках. Что было бы идеальным:
+----+-------------+------------+-----------+
| id | customer_id | first_name | last_name |
+----+-------------+------------+-----------+
| 0 | 5 | Bob | Jones |
| 1 | 6 | Sally | Sue |
+----+-------------+------------+-----------+
Со всеми данными о пользователе в одной строке.
Есть ли способ сделать это в SQL-запросе, чтобы мне не приходилось сталкиваться с результатами в PHP? Или мне придется выбирать данные на PHP?
мне нужно запрашивая из таблицы А, а не только В. В действительности, таблица А имеет больше данных, чем просто Customer_ID, и я буду хватать, что данных. –
@ kylemorgan49. , , Вы можете использовать эти данные, используя 'join'. –