Избавиться от повторов в представлении (View) - MySQL
Формулировка задачи:
Здравствуйте уважаемые!
Подскажите как сделать представление, что бы из двух таблиц выводились данные и главное без повторений.
Есть таблицы
№1
№2
Представление
получаю
а надо
Помогите пожалуйста.
Листинг программы
- CREATE TABLE `adresa` (
- `id` int(255) NOT NULL AUTO_INCREMENT,
- `ip` char(20) COLLATE utf8_bin NOT NULL,
- `port` int(5) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Листинг программы
- CREATE TABLE `status` (
- `id` int(255) NOT NULL AUTO_INCREMENT,
- `status` char(30) COLLATE utf8_bin DEFAULT NULL,
- `date` date DEFAULT NULL,
- `time` time DEFAULT NULL,
- `servis` char(30) COLLATE utf8_bin DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Листинг программы
- CREATE VIEW itog AS select
- `adresa`.`id` AS `id`,
- `adresa`.`ip` AS `ip`,
- `adresa`.`port` AS `port`,
- `status`.`status` AS `status`,
- `status`.`date` AS `date`,
- `status`.`time` AS `time`,
- `status`.`servis` AS `servis`
- from (`adresa` join `status`)
Решение задачи: «Избавиться от повторов в представлении (View)»
textual
Листинг программы
- CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`
- SQL SECURITY DEFINER VIEW `itog` AS
- select
- `status`.`status` AS `status`,
- `status`.`date` AS `date`,
- `status`.`time` AS `time`,
- `status`.`servis` AS `servis`,
- `adresa`.`ip` AS `ip`,
- `adresa`.`port` AS `port`,
- `status`.`id_adres` AS `id_adres`,
- `adresa`.`id` AS `id`
- from (`adresa` join `status` on((`adresa`.`id` = `status`.`id_adres`)));
Объяснение кода листинга программы
- Создание представления (View) с именем
itog
. - Установка SQL-безопасности для представления.
- Указание таблиц, которые будут использоваться в представлении:
status
иadresa
. - Определение полей, которые будут включены в представление из таблицы
status
:status
,date
,time
,servis
,id_adres
. - Определение полей, которые будут включены в представление из таблицы
adresa
:ip
,port
,id
. - Установка связи между таблицами
status
иadresa
по полюid_adres
. - Завершение определения представления.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д