Я все еще работаю над некоторыми перегибами с MySQL, поэтому любая помощь будет оценена.
У меня есть 3 таблицы - оборудование, состояния, зоны.
equipment:
+---------------+------+------------+
| current_state | id | ...columns |
+---------------+------+------------+
states:
+----------+-------------+
| state | zone_id |
+----------+-------------+
zones:
+-----+------+
| id | zone |
+-----+------+
В оборудовании,в строке есть одно значение current_state.
В штатах есть один идентификатор_зоны для каждой строки.
В зонах имеется одна зона на строку.
Я хочу присоединитьсятри таблицы в качестве оператора выбора подзапроса (даже не уверены, что это так) и имеют выходной результат в виде 1 столбца с псевдонимом среди других столбцов, которые я выбираю
+--------------+-------------+
| current_zone | ....columns |
+--------------+-------------+
Пример ожидаемого результата::
+------------+-------------+--------+------------------+--------------+---------+
| c_id | g_id | e_id | equipment_type | impressionId | email |
+------------+-------------+--------+------------------+--------------+---------+
| 1234 | ABC1234 | 0001 | VEST | 2032 |ab@yc.com|
| 1234 | 1234ABC | 0001 | SHIRT | 4372 |ab@yc.com|
| 1234 | DCBA123 | 0001 | CAN | 4372 |ab@yc.com|
| 1234 | DCBA321 | 0001 | JACKET | ab@yc.com |ab@yw.com|
| 4567 | abc321d | 0002 | SHIRT | 2032 |db@yw.com|
| 4567 | cba123d | 0002 | CAN | 4372 |db@yw.com|
| 4567 | def4rg4 | 0002 | JEANS | 3210 |db@yw.com|
+------------+-------------+--------+------------------+--------------+---------+
В текущем запросе есть несколько объединений, уже ссылающихся на таблицу зон и состояний для определения другого значения:
SELECT equipment.*,
...
FROM equipment
LEFT JOIN c on equipment.c_id = c.id
LEFT JOIN g on equipment.g_id = g.id
LEFT JOIN states on g.state = states.state
LEFT JOIN zones on zones.id = states.zone_id
По сути, я хочу создатьподзапрос для создания нового столбца на основе результатов трех объединений, что-то вроде этого:
SELECT equipment.*,
(SELECT
equipment.current_state
FROM equipment
LEFT JOIN equipment.current_state = states.state
LEFT JOIN zones.id = states.zone_id
) as current_zone,
...
Это вообще возможно?Я пытаюсь выбрать новый столбец в неправильном месте?