Не понимаю, почему не работает, когда я присоединяю ещё одну таблицу?
Почему-то ругается на этот join
LEFT JOIN category_letter_master ON category_letter_master.masters_id = master_user.master_id
Статический анализ:
Найдено 2 ошибок при анализе.
Этот тип предложения ранее анализировался. (near "LEFT JOIN" at position 233)
Неизвестный оператор. (near "LEFT JOIN" at position 233)
SQL запрос:
SELECT master_user.master_id, masters.specialization, COUNT(*) FROM master_user LEFT JOIN masters ON master_user.master_id = masters.id WHERE city_id = 4019 LEFT JOIN category_letter_master ON category_letter_master.masters_id = master_user.master_id GROUP BY master_user.master_id
Ответ MySQL:
#1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около 'LEFT JOIN category_letter_master ON category_letter_master.masters_id = master_' на строке 5
Вот так работает
SELECT master_user.master_id,
masters.specialization,
COUNT(*) FROM master_user
LEFT JOIN masters ON master_user.master_id = masters.id
WHERE city_id = 4019
GROUP BY master_user.master_id
А если добавить ещё один join, то не работает, почему?
CREATE TABLE `master_user` (
`id` int(10) UNSIGNED NOT NULL,
`user_id` int(11) NOT NULL,
`master_id` int(11) NOT NULL,
`city_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Дамп данных таблицы `master_user`
--
INSERT INTO `master_user` (`id`, `user_id`, `master_id`, `city_id`) VALUES
(15, 16, 3, 4019),
(18, 16, 5, 4019),
(19, 16, 4, 4019),
(20, 16, 2, 4019),
(21, 17, 4, 4019),
(22, 17, 2, 4400);
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `master_user`
--
ALTER TABLE `master_user`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT для сохранённых таблиц
--
--
-- AUTO_INCREMENT для таблицы `master_user`
--
ALTER TABLE `master_user`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
COMMIT;
--
-- Структура таблицы `category_letter_master`
--
CREATE TABLE `category_letter_master` (
`id` int(10) UNSIGNED NOT NULL,
`category_letter_id` int(11) NOT NULL,
`master_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Дамп данных таблицы `category_letter_master`
--
INSERT INTO `category_letter_master` (`id`, `category_letter_id`, `master_id`) VALUES
(1, 1, 1),
(2, 4, 2),
(3, 5, 3),
(4, 17, 4),
(5, 17, 5),
(7, 12, 7);
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `category_letter_master`
--
ALTER TABLE `category_letter_master`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT для сохранённых таблиц
--
--
-- AUTO_INCREMENT для таблицы `category_letter_master`
--
ALTER TABLE `category_letter_master`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
COMMIT;
--
-- Структура таблицы `masters`
--
CREATE TABLE `masters` (
`id` int(10) UNSIGNED NOT NULL,
`specialization` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Дамп данных таблицы `masters`
--
INSERT INTO `masters` (`id`, `specialization`) VALUES
(1, 'Алмазная резка'),
(2, 'Гипсокартон'),
(3, 'Двери'),
(4, 'Пол'),
(5, 'Потолок'),
(7, 'Кладка');
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `masters`
--
ALTER TABLE `masters`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT для сохранённых таблиц
--
--
-- AUTO_INCREMENT для таблицы `masters`
--
ALTER TABLE `masters`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
COMMIT;