Я получаю сообщение об ошибке (#1054 - Unknown column 'post.make_id' in 'on clause') со следующим запросом:
SELECT `post`.*
FROM `post`,
`city` `postCity`
LEFT JOIN `make` ON `post`.`make_id` = `make`.`id`
Если я удалю city` `postCity, ошибок не будет.
Могу ли я запросить таблицу city, даже если она не связана с таблицей post, и в то же время соединить левую часть с другими таблицами?
Не смешивайте неявные (разделенные запятыми) объединения и явные объединения.
LEFT JOIN оценивается перед неявным соединением. Состояние ON не имеет доступа к таблице сообщений.
Добавьте образец данных таблицы и ожидаемый результат. (Как форматированный текст, а не изображения.)






Думаю, ваша проблема в смешивании запятых с правильным синтаксисом JOIN.
Это делает то, что вы хотите?
SELECT p.*
FROM post p CROSS JOIN
city c LEFT JOIN
make m
ON p.make_id = m.id;
Я не уверен, чего вы пытаетесь достичь. Это не выглядит особенно полезным, но может исправить вашу синтаксическую ошибку.
Большое спасибо! Я пытаюсь вычислить расстояние между создателем сообщения и вошедшим в систему пользователем, используя широту и долготу города.
Что такое
postCity? Колонка?