texrdcom
Новичок
подскажите с запросом лезут дубли хотя и не должны бы
запрос
SELECT DISTINCT `l`.`nameurl` , `l`.`alt` , `l`.`lang` , `t`.`id` , `t`.`url` , `t`.`idpath`
FROM `admin_tree` t, `admin_page_lang` l
WHERE `t`.`id` = `l`.`id`
AND `t`.`idpath` LIKE '00/01%'
OR (
`t`.`idpath` LIKE '00/0_'
)
ORDER BY `t`.`idpath` ASC
// Хочу получить данные которые подходят по маске
`t`.`idpath` LIKE '00/01%'
и по маске
`t`.`idpath` LIKE '00/0_'
При етом не допустить дубли по `t`.`idpath`.
В результате этого запроса получаю дубли в результатах.
Обясните где ошибаюсь ?
Вот дамп таблиц:
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 13 2006 г., 14:25
-- Версия сервера: 4.1.16
-- Версия PHP: 5.1.4
--
-- БД: `arm`
--
-- --------------------------------------------------------
--
-- Структура таблицы `admin_tree`
--
CREATE TABLE `admin_tree` (
`id` int(10) NOT NULL default '0',
`idpath` varchar(255) NOT NULL default '',
`url` varchar(255) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `index_tree_FKIndex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `admin_tree`
--
INSERT INTO `admin_tree` VALUES (1, '00/01', 'page');
INSERT INTO `admin_tree` VALUES (2, '00/01/01', 'addPage');
INSERT INTO `admin_tree` VALUES (3, '00/02', 'user');
-- Вторая таблица
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 13 2006 г., 14:27
-- Версия сервера: 4.1.16
-- Версия PHP: 5.1.4
--
-- БД: `arm`
--
-- --------------------------------------------------------
--
-- Структура таблицы `admin_page_lang`
--
CREATE TABLE `admin_page_lang` (
`id` int(10) NOT NULL auto_increment,
`viewonuser` int(10) default NULL,
`view` int(1) unsigned default NULL,
`lang` varchar(2) default NULL,
`title` varchar(255) default NULL,
`keywords` varchar(255) default NULL,
`description` varchar(255) default NULL,
`body` varchar(255) default NULL,
`nameurl` varchar(255) default NULL,
`alt` varchar(255) default NULL,
`robots` varchar(3) NOT NULL default 'ALL',
PRIMARY KEY (`id`),
KEY `index_page_lang_FKIndex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Дамп данных таблицы `admin_page_lang`
--
INSERT INTO `admin_page_lang` VALUES (1, 1, 1, 'ru', NULL, NULL, NULL, NULL, 'Управления страницами', 'Управления Страницами модулей системы', 'ALL');
INSERT INTO `admin_page_lang` VALUES (2, 1, 1, 'ru', NULL, NULL, NULL, NULL, 'Добавления Страници', 'Добавления новой страници в текущей модуль', 'ALL');
INSERT INTO `admin_page_lang` VALUES (3, 1, 1, 'ru', NULL, NULL, NULL, NULL, 'Управления пользователями', 'Управления пользователями', 'ALL');
запрос
SELECT DISTINCT `l`.`nameurl` , `l`.`alt` , `l`.`lang` , `t`.`id` , `t`.`url` , `t`.`idpath`
FROM `admin_tree` t, `admin_page_lang` l
WHERE `t`.`id` = `l`.`id`
AND `t`.`idpath` LIKE '00/01%'
OR (
`t`.`idpath` LIKE '00/0_'
)
ORDER BY `t`.`idpath` ASC
// Хочу получить данные которые подходят по маске
`t`.`idpath` LIKE '00/01%'
и по маске
`t`.`idpath` LIKE '00/0_'
При етом не допустить дубли по `t`.`idpath`.
В результате этого запроса получаю дубли в результатах.
Обясните где ошибаюсь ?
Вот дамп таблиц:
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 13 2006 г., 14:25
-- Версия сервера: 4.1.16
-- Версия PHP: 5.1.4
--
-- БД: `arm`
--
-- --------------------------------------------------------
--
-- Структура таблицы `admin_tree`
--
CREATE TABLE `admin_tree` (
`id` int(10) NOT NULL default '0',
`idpath` varchar(255) NOT NULL default '',
`url` varchar(255) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `index_tree_FKIndex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `admin_tree`
--
INSERT INTO `admin_tree` VALUES (1, '00/01', 'page');
INSERT INTO `admin_tree` VALUES (2, '00/01/01', 'addPage');
INSERT INTO `admin_tree` VALUES (3, '00/02', 'user');
-- Вторая таблица
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 13 2006 г., 14:27
-- Версия сервера: 4.1.16
-- Версия PHP: 5.1.4
--
-- БД: `arm`
--
-- --------------------------------------------------------
--
-- Структура таблицы `admin_page_lang`
--
CREATE TABLE `admin_page_lang` (
`id` int(10) NOT NULL auto_increment,
`viewonuser` int(10) default NULL,
`view` int(1) unsigned default NULL,
`lang` varchar(2) default NULL,
`title` varchar(255) default NULL,
`keywords` varchar(255) default NULL,
`description` varchar(255) default NULL,
`body` varchar(255) default NULL,
`nameurl` varchar(255) default NULL,
`alt` varchar(255) default NULL,
`robots` varchar(3) NOT NULL default 'ALL',
PRIMARY KEY (`id`),
KEY `index_page_lang_FKIndex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Дамп данных таблицы `admin_page_lang`
--
INSERT INTO `admin_page_lang` VALUES (1, 1, 1, 'ru', NULL, NULL, NULL, NULL, 'Управления страницами', 'Управления Страницами модулей системы', 'ALL');
INSERT INTO `admin_page_lang` VALUES (2, 1, 1, 'ru', NULL, NULL, NULL, NULL, 'Добавления Страници', 'Добавления новой страници в текущей модуль', 'ALL');
INSERT INTO `admin_page_lang` VALUES (3, 1, 1, 'ru', NULL, NULL, NULL, NULL, 'Управления пользователями', 'Управления пользователями', 'ALL');