Проблема с вашим кодом в том, что он возвращает несколько столбцов с именем user_id. Некоторые из этих значений, которые приходят из LEFT JOIN
с, могут выглядеть как NULL
.
При сериализации в JSON, где ключи уникальны, вероятно, что выбрано «неправильное» поле, в результате чего получается значение NULL
.
Чтобы решить эту проблему, вы хотите перечислить точно поля, которые нужно извлечь из каждой таблицы, вместо использования *
. Конечно, user_id
должно исходить из таблицы, которая не LEFT JOIN
ed:
SELECT
a.user_id, a.field1, a.field2
b.field11, b.field12
c.field21, c.field22, c.field23
d.field31
...
Детали
Вы выбираете поля, используя *
:
SELECT
a.*,
b.*,
c.*,
d.*
...
Но ваш запрос показывает, что у вас есть несколько полей с именем user_id
:
...
LEFT JOIN ts_students_log b
ON a.`user_id` = b.`user_id`
LEFT JOIN ts_students_info c
ON a.`user_id` = c.`user_id`
LEFT JOIN `geo_records` d
ON a.`user_id` = d.`user_id`
...