подскажите с запросом лезут дубли хотя и не должны бы

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');
 

zerkms

TDD infected
Команда форума
[sql]
SELECT `l`.`nameurl` , `l`.`alt` , `l`.`lang` , `t`.`id` , `t`.`url` , `t`.`idpath`
FROM `admin_tree` t INNER JOIN `admin_page_lang` l
ON `t`.`id` = `l`.`id`
WHERE `t`.`idpath` LIKE '00/01%'
OR `t`.`idpath` LIKE '00/0_'
GROUP BY `t`.`idpath`
[/sql]
 

texrdcom

Новичок
Сори не досыпания упустил скобки
[sql]
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

[/sql]

-~{}~ 13.06.06 15:49:

Спасибо за помощь zerkms
 

zerkms

TDD infected
Команда форума
texrdcom
и всё таки явное указание INNER JOIN + ON рулит имхо ;)
 
Сверху