У меня есть две таблицы, которые я хотел бы объединить в одну, но не все поля.Я использовал INNER JOIN с некоторым успехом, но не могу получить точные результаты, которые мне нужны.По сути, при использовании PHP для возврата результатов я бы хотел, чтобы ключом было значение «meta_key».
Ниже приведены две таблицы, которые я хочу объединить:
USERS
+--------+-----------------+------------------+----------------+
| ID | username | first_name | last_name |
+--------+-----------------+------------------+----------------+
| 2 | hthompson | Hunter | Thompson |
| 7 | coak | Carol | Oak |
| 8 | delk | Dannie | Elk |
| 9 | mride | Mark | Ride |
| 10 | kken | Kyle | Ken |
| 11 | glee | Ginny | Lee |
| 12 | nwatts | Naomi | Watts |
| 13 | jwong | Jin | Wong |
| 14 | syin | Shen | Yin |
+--------+-----------------+------------------+----------------+
USERS_META
+--------+--------+-----------------+------------------+
| ID | UID | meta_key | meta_value |
+--------+--------+-----------------+------------------+
| 1 | 2 | business_name | Company Inc. |
| 2 | 2 | city | New York |
| 3 | 2 | state | NY |
| 5 | 9 | city | Boston |
| 6 | 9 | state | MA |
| 7 | 11 | business_type | Printer |
| 8 | 8 | chamber_member | true |
| 9 | 2 | business_type | Design |
+--------+--------+-----------------+------------------+
Ниже приведен пример того, что я хотел бы вернуть:
USERS
+--------+-----------------+------------+------------+------------------+
| ID | username | city | state | business_name |
+--------+-----------------+------------+------------+------------------+
| 2 | hthompson | New York | NY | Company Inc. |
+--------+-----------------+------------+------------+------------------+
ИЛИ
$user['ID'] = 2
$user['username'] = hthompson
$user['city'] = New York
$user['state'] = NY
$user['business_name'] = Company Inc.
Самое близкое, что я пришел, это:
$query = ("SELECT *
FROM users
INNER JOIN users_meta ON users.ID = users_meta.UID
WHERE
users_meta.meta_key = 'city' OR
users_meta.meta_key = 'state' OR
users_meta.meta_key = 'business_name'
");
Тем не менее, выполнение этого возвращает три результата для каждого уникального идентификатора пользователя, и я собираюсь вернуть один со всей указанной мета-информацией.Основная цель этого заключается в том, чтобы я мог выполнять поиск по ключевому слову, которое будет применяться к столбцам USERS.first_name, USERS.first_name и USERS_META.business_name, а затем, очевидно, будет возвращать результаты в таблице, содержащей ID, название компании, город, Штат, Имя и Фамилия.
Заранее спасибо!