Я столкнулся с проблемой, пытаясь объединить 4 таблицы:
Разговор:
+-----+---------+------------+
| id: | start: | end: |
+-----+---------+------------+
| a | 3 | 87 |
| e | <null> | 4 |
| h | 4 | 67 |
| l | 5 | 6 |
| o | <null> | <null> |
+-----+---------+------------+
Телефон:
+-----+-------------+--------+
| id: | P_duration: | T_id: |
+-----+-------------+--------+
| a | 2 | a1 |
| e | <null> | <null> |
| h | 5 | <null> |
+-----+-------------+--------+
Чат:
+-----+--------------+---------+
| id: | C_duration: | T_id: |
+-----+--------------+---------+
| l | 4 | a2 |
+-----+--------------+---------+
Билет
+---------+
| T_id |
+---------+
| a1 |
| a2 |
| a3 |
+---------+
Я пытаюсь получить что-то вроде этого:
Результат:
+--------+-------------+-------------+--------+
| id: | P_duration: | C_duration: | T_id: |
+--------+-------------+-------------+--------+
| a | 2 | <null> | a1 |
| e | <null> | <null> | <null> |
| h | 5 | <null> | <null> |
| l | <null> | 4 | a2 |
| o | <null> | <null> | <null> |
| <null> | <null> | <null> | a3 |
+--------+-------------+-------------+--------+
Я пытался с таким запросом
SELECT
conv.id, p.P_duration, c.C_duration, t.T_id
FROM
Conversations conv
LEFT JOIN
phone p ON p.id = conv.id
LEFT JOIN
chat c ON c.id = conv.id
LEFT JOIN
ticket t ON (t.T_id = p.T_id OR t.T_id = c.T_id)
К сожалению, это не работает, так как я не могу покрыть последняя строка в таблице результатов: когда у меня есть тикет, но нет разговора.
Как мне изменить запрос?
Заранее спасибо