Запрос с JOIN и алиасами при выборке подставляется последняя запись - MySQL
Формулировка задачи:
Добрый вечер! Если честно минут 30 думал как правильно поставить вопрос. Есть две таблицы
Таблица 1 position
Ее содержимое
Таблица 2 teachers
Ее содержимое
Делаю такого вида запрос
Ожидаю получить что то типа
Листинг программы
- CREATE TABLE IF NOT EXISTS `position` (
- `id_position` BIGINT(20) UNSIGNED NOT NULL,
- `name_position` VARCHAR(100) NOT NULL
- ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Листинг программы
- INSERT INTO `position` (`id_position`, `name_position`) VALUES
- (1, 'Директор'),
- (2, 'Зам по икт');
Листинг программы
- CREATE TABLE IF NOT EXISTS `teachers` (
- `id_teacher` BIGINT(20) UNSIGNED NOT NULL,
- `fileName` VARCHAR(100) NOT NULL,
- `name` VARCHAR(100) NOT NULL,
- `lastName` VARCHAR(100) NOT NULL,
- `p1` INT(11) NOT NULL,
- `p2` INT(11) NOT NULL
- ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
Листинг программы
- INSERT INTO `teachers` (`id_teacher`, `fileName`, `name`, `lastName`, `p1`, `p2`) VALUES
- (1, 'Иван', 'Ивано', 'Иванович', 1, 2);
Листинг программы
- SELECT `teachers`.`id_teacher`, `teachers`.`firstName`, `teachers`.`name`, `teachers`.`lastName`, `i1`.`name_position`, `i2`.`name_position`
- FROM `teachers`
- INNER JOIN `position` `i1` ON teachers.p1 = i1.id_position
- INNER JOIN `position` `i2` ON teachers.p2 = i2.id_position
- WHERE `id_teacher` = 1
Иван, Иванов, Иванович, Директор, Зам по икт
Но в место этого получаюИван, Иванов, Иванович, Зам по икт
Не знаю правильно ли поставил вопрос, весь день читаю и читаю про join и как алиасы ставить но запрос составить не удалось, можете помочь?Решение задачи: «Запрос с JOIN и алиасами при выборке подставляется последняя запись»
textual
Листинг программы
- SELECT t.lastName, tt.np
- FROM teachers t
- LEFT JOIN (
- SELECT id_teacher, GROUP_CONCAT(name_position ORDER BY tp.priority ASC SEPARATOR ', ' ) AS np
- FROM teachers_positions tp
- LEFT JOIN POSITION p ON p.id_position = tp.id_position
- GROUP BY tp.id_teacher
- ) tt ON t.id_teacher = tt.id_teacher
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д