Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
помогите с запрсом, пожалуйста! (Дмитрий) 07/12/2011 - 11:26:30
      Re: Вот структура таблиц... (Дмитрий) 07/12/2011 - 11:31:47
      Re: Вот структура таблиц... (Дмитрий) 07/12/2011 - 12:21:51
      Re: Вот структура таблиц... (Akina) 07/12/2011 - 15:48:06
      Re: Вот структура таблиц... (Дмитрий) 08/12/2011 - 08:30:03

> Original message text:
> From: Дмитрий - 07/12/2011 - 11:26:30
> Subject:помогите с запрсом, пожалуйста!
> -----------------
> Есть вот такой запрос:
>
> SELECT
> a.id,
> a .title,
> a.created,
> c.logo,
> c.tor_name,
> t.name,
> (SELECT COUNT( DISTINCT town ) FROM jos_catalog_offices WHERE com_id = a.com_id ) AS count
> FROM
> jos_catalog_ads a
> LEFT JOIN
> jos_catalog_company c ON c.id=a.com_id
> RIGHT JOIN
> jos_catalog_offices o USING ( com_id )
> LEFT JOIN
> jos_catalog_city t ON t.id_city=o.town
> WHERE
> a.id IS NOT NULL AND
> a.created BETWEEN STR_TO_DATE('2011-11-01 00:00:00', '%Y-%m-%d %H:%i:%s')
> AND STR_TO_DATE('2011-11-20 00:00:00', '%Y-%m-%d %H:%i:%s')
> GROUP BY a.id
> ORDER BY a.created DESC, a.title
>
> В нём пытаюсь сделать выборку по дате и не работает. Путём нехитрых манипуляций выяснилось что дело всё в RIGHT JOIN. Избавился от него, постаив вначале jos_catalog_offices, т.к. их больше чем компаний (jos_catalog_company) :
>
> SELECT
> a.id,
> a .title,
> a.created,
> c.logo,
> c.tor_name,
> t.name,
> (SELECT COUNT( DISTINCT town ) FROM jos_catalog_offices WHERE com_id = a.com_id ) AS count
> FROM
> jos_catalog_ads a
> LEFT JOIN
> jos_catalog_company c ON c.id=a.com_id
> RIGHT JOIN
> jos_catalog_offices o USING ( com_id )
> LEFT JOIN
> jos_catalog_city t ON t.id_city=o.town
> WHERE
> a.id IS NOT NULL AND
> a.created BETWEEN STR_TO_DATE('2011-11-01 00:00:00', '%Y-%m-%d %H:%i:%s')
> AND STR_TO_DATE('2011-11-20 00:00:00', '%Y-%m-%d %H:%i:%s')
> GROUP BY a.id
> ORDER BY a.created DESC, a.title
>
> Всё равно не работает. Поле created --> DATETIME, такое же поле есть и в jos_catalog_company.
> Без джойнов всё работает...
> Следом вышлю структуру таблиц.
>
>


From: Дмитрий - 07/12/2011 - 11:31:47
Subject:Вот структура таблиц...
-----------------
-- Структура таблицы `jos_catalog_ads`
--

CREATE TABLE IF NOT EXISTS `jos_catalog_ads` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`com_id` int(11) unsigned NOT NULL,
`title` varchar(255) NOT NULL,
`text` text NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`pro` date NOT NULL DEFAULT '0000-00-00',
`state` tinyint(1) NOT NULL,
`metakey` text NOT NULL,
`metadesc` text NOT NULL,
`hits` int(15) NOT NULL,
PRIMARY KEY (`id`),
KEY `com_id` (`com_id`),
FULLTEXT KEY `title` (`title`,`text`,`metakey`,`metadesc`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=763 ;

-- --------------------------------------------------------

--
-- Структура таблицы `jos_catalog_city`
--

CREATE TABLE IF NOT EXISTS `jos_catalog_city` (
`id_city` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_region` int(10) unsigned NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id_city`),
KEY `id_region` (`id_region`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2533 ;

-- --------------------------------------------------------

--
-- Структура таблицы `jos_catalog_company`
--

CREATE TABLE IF NOT EXISTS `jos_catalog_company` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`section` int(3) unsigned NOT NULL,
`category` int(3) unsigned NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`metakey` text NOT NULL,
`metadesc` text NOT NULL,
`state` tinyint(1) NOT NULL DEFAULT '0',
`sell` varchar(255) DEFAULT NULL,
`tor_name` varchar(255) NOT NULL,
`alias` varchar(255) NOT NULL,
`ur_name` varchar(255) NOT NULL,
`logo` varchar(255) NOT NULL,
`intro` varchar(255) NOT NULL,
`text` text NOT NULL,
`site` varchar(255) NOT NULL,
`files` int(1) NOT NULL DEFAULT '0',
`ads` int(1) NOT NULL DEFAULT '0',
`user` int(11) NOT NULL,
`type` int(1) NOT NULL DEFAULT '3',
`type_date` date NOT NULL DEFAULT '0000-00-00',
`hits` int(15) NOT NULL,
PRIMARY KEY (`id`),
KEY `section` (`section`),
KEY `category` (`category`),
FULLTEXT KEY `metakey` (`metakey`,`metadesc`,`tor_name`,`ur_name`,`intro`,`text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=14842 ;

-- --------------------------------------------------------

--
-- Структура таблицы `jos_catalog_offices`
--

CREATE TABLE IF NOT EXISTS `jos_catalog_offices` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`com_id` int(11) unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`main` tinyint(1) NOT NULL,
`country` int(2) NOT NULL DEFAULT '1',
`okrug` int(2) NOT NULL,
`region` int(3) NOT NULL,
`town` int(5) NOT NULL,
`adress` text NOT NULL,
`map` varchar(255) NOT NULL,
`phone` varchar(255) NOT NULL,
`fax` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`icq` varchar(50) NOT NULL,
`skype` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `old_id` (`com_id`),
KEY `okrug` (`okrug`),
KEY `region` (`region`),
KEY `town` (`town`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12532 ;

И ещё, запрос работает, но почему-то выдаёт 0. Убираю отбор по дате, выводит всё...Убираю дойны, тоже...


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
40794



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |