SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.11.2014 11:31:47

Pavel71
Участник
Зарегистрирован: 28.11.2014
Сообщений: 3

Join - одна таблица (прикрепить дочерние записи-переводов)

В рамках одной таблицы хранятся записи и переводы записей.
Все основное содержимое хранится в записи по умолчанию.
В дочерних записях храняться только переводы (актуальное содержимое только две колонки - title, textcontent)

Как можно составить запрос на присоединение данный дочерних записей с Join?
К примеру что бы делая запрос:
SELECT * FROM table
также приходиле еще две дополнительные колонки title_TRANSLATE, textcontent_TRANSLATE?
или может быть как-то иначе - что бы была возможность поддержки LIKE, COUNT, ORDER, LIMIT на выборку записей

Отредактированно Pavel71 (28.11.2014 11:32:51)

Неактивен

 

#2 28.11.2014 11:39:50

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: Join - одна таблица (прикрепить дочерние записи-переводов)

Непонятно, где хранятся переводы. Приведите пожалуйста структуру таблиц, тестовый набор данных - и какой результат Вы хотите получить от sql-запроса.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 18.12.2014 19:15:02

Pavel71
Участник
Зарегистрирован: 28.11.2014
Сообщений: 3

Re: Join - одна таблица (прикрепить дочерние записи-переводов)

Структура таблиц с демо-содержимым и картинка.
https://yadi.sk/d/QWaiv0RQdU2jX
https://yadi.sk/i/821p3pC0dU2kW

Отредактированно Pavel71 (18.12.2014 19:16:01)

Неактивен

 

#4 30.12.2014 20:58:36

Pavel71
Участник
Зарегистрирован: 28.11.2014
Сообщений: 3

Re: Join - одна таблица (прикрепить дочерние записи-переводов)

deadka написал:

Непонятно, где хранятся переводы. Приведите пожалуйста структуру таблиц, тестовый набор данных - и какой результат Вы хотите получить от sql-запроса.

Почистил структуру таблицы:

Код:

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

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

CREATE TABLE IF NOT EXISTS `sys_language` (
  `uid` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(80) NOT NULL DEFAULT '',
  `flag` varchar(20) NOT NULL DEFAULT '',
  `static_lang_isocode` int(11) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- Дамп данных таблицы `sys_language`
--

INSERT INTO `sys_language` (`uid`, `title`, `flag`, `static_lang_isocode`) VALUES
(1, 'UA', 'ua', 0),
(2, 'EN', 'england', 0),
(3, 'CN', 'cn', 0);


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

CREATE TABLE IF NOT EXISTS `pages` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL DEFAULT '0',
  `tstamp` int(11) unsigned NOT NULL DEFAULT '0',
  `sorting` int(11) unsigned NOT NULL DEFAULT '0',
  `deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `crdate` int(11) unsigned NOT NULL DEFAULT '0',
  `hidden` tinyint(4) unsigned NOT NULL DEFAULT '0',
  `title` varchar(255) NOT NULL DEFAULT '',
  `doktype` int(11) unsigned NOT NULL DEFAULT '0',
  `url` varchar(255) NOT NULL DEFAULT '',
  `starttime` int(11) unsigned NOT NULL DEFAULT '0',
  `endtime` int(11) unsigned NOT NULL DEFAULT '0',
  `subtitle` varchar(255) NOT NULL DEFAULT '',
  `keywords` text,
  `description` text,
  `l18n_cfg` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`uid`),
  KEY `parent` (`pid`,`deleted`,`sorting`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=104 ;

--
-- Дамп данных таблицы `pages`
--

INSERT INTO `pages` (`uid`, `pid`, `tstamp`, `sorting`, `deleted`, `crdate`, `hidden`, `title`, `doktype`, `url`, `starttime`, `endtime`, `subtitle`, `keywords`, `description`, `l18n_cfg`) VALUES
(100, 96, 1418913370, 128, 0, 1418913319, 0, 'Главная', 1, '', 0, 0, '', NULL, NULL, 0),
(101, 96, 1418913371, 192, 0, 1418913323, 0, 'О компании', 1, '', 0, 0, '', NULL, NULL, 0),
(102, 96, 1418913372, 448, 0, 1418913341, 0, 'Вакансии', 1, '', 0, 0, '', NULL, NULL, 0),
(103, 96, 1418913374, 704, 0, 1418913353, 0, 'Контакты', 1, '', 0, 0, '', NULL, NULL, 0);

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

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

CREATE TABLE IF NOT EXISTS `pages_language_overlay` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL DEFAULT '0',
  `doktype` int(11) unsigned NOT NULL DEFAULT '0',
  `tstamp` int(11) unsigned NOT NULL DEFAULT '0',
  `crdate` int(11) unsigned NOT NULL DEFAULT '0',
  `sys_language_uid` int(11) unsigned NOT NULL DEFAULT '0',
  `title` varchar(255) NOT NULL DEFAULT '',
  `hidden` tinyint(4) unsigned NOT NULL DEFAULT '0',
  `starttime` int(11) unsigned NOT NULL DEFAULT '0',
  `endtime` int(11) unsigned NOT NULL DEFAULT '0',
  `deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `subtitle` varchar(255) NOT NULL DEFAULT '',
  `nav_title` varchar(255) NOT NULL DEFAULT '',
  `keywords` text,
  `description` text,
  PRIMARY KEY (`uid`),
  KEY `parent` (`pid`,`sys_language_uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;

--
-- Дамп данных таблицы `pages_language_overlay`
--

INSERT INTO `pages_language_overlay` (`uid`, `pid`, `doktype`, `tstamp`, `crdate`, `sys_language_uid`, `title`, `hidden`, `starttime`, `endtime`, `deleted`, `subtitle`, `nav_title`, `keywords`, `description`) VALUES
(4, 100, 1, 1418915032, 1418913563, 1, 'Головна', 0, 0, 0, 0, 'Головна', 'Головна', '', ''),
(5, 101, 1, 1418915012, 1418913592, 2, 'About Company', 0, 0, 0, 0, 'About Company', 'About Company', '', ''),
(6, 102, 1, 1418913625, 1418913625, 1, 'Вакансії', 0, 0, 0, 0, 'Вакансії', 'Вакансії', '', ''),
(7, 102, 1, 1418913637, 1418913637, 2, 'Jobs', 0, 0, 0, 0, 'Jobs', 'Jobs', '', ''),
(8, 103, 1, 1418913667, 1418913667, 2, 'Contacts', 1, 0, 0, 0, 'Contacts', 'Contacts', '', ''),
(9, 103, 1, 1418915002, 1418913673, 1, 'Контакти', 1, 0, 0, 0, 'Контакти', 'Контакти', '', ''),
(10, 103, 1, 1418913698, 1418913698, 3, '联系信息', 0, 0, 0, 0, '联系信息', '联系信息', '', '');


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

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

CREATE TABLE IF NOT EXISTS `tt_content_category_lang_test` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `crdate` int(11) NOT NULL DEFAULT '0',
  `deleted` tinyint(4) NOT NULL DEFAULT '0',
  `hidden` tinyint(4) NOT NULL DEFAULT '0',
  `starttime` int(11) unsigned NOT NULL DEFAULT '0',
  `endtime` int(11) unsigned NOT NULL DEFAULT '0',
  `sorting` int(11) unsigned NOT NULL DEFAULT '0',
  `title` tinytext,
  `bodytext` text,
  `seo_keywords` text,
  `seo_description` text,
  `seo_alias` tinytext,
  `pelem` varchar(255) DEFAULT '0',
  `telem` varchar(255) DEFAULT '0',
  `sys_language_uid` int(11) NOT NULL DEFAULT '0',
  `l18n_parent` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

--
-- Дамп данных таблицы `tt_content_category_lang_test`
--

INSERT INTO `tt_content_category_lang_test` (`uid`, `crdate`, `deleted`, `hidden`, `starttime`, `endtime`, `sorting`, `title`, `bodytext`, `seo_keywords`, `seo_description`, `seo_alias`, `pelem`, `telem`, `sys_language_uid`, `l18n_parent`) VALUES
(1, 0, 0, 0, 0, 0, 0, 'Легковые автомобили', NULL, NULL, NULL, NULL, '0', '0', 0, 0),
(2, 0, 0, 0, 0, 0, 0, 'Грузовые автомобили', NULL, NULL, NULL, NULL, '0', '0', 0, 0),
(3, 0, 0, 0, 0, 0, 0, 'Служебная техника', NULL, NULL, NULL, NULL, '0', '0', 0, 0),
(4, 0, 0, 0, 0, 0, 0, '汽车', NULL, NULL, NULL, NULL, '0', '0', 3, 1),
(5, 0, 0, 0, 0, 0, 0, 'Cars', NULL, NULL, NULL, NULL, '0', '0', 2, 1),
(6, 0, 0, 0, 0, 0, 0, 'Легкові автомобілі', NULL, NULL, NULL, NULL, '0', '0', 1, 1),
(7, 0, 0, 0, 0, 0, 0, 'Trucks', NULL, NULL, NULL, NULL, '0', '0', 2, 2);

Неактивен

 

#5 30.12.2014 21:02:13

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2420

Re: Join - одна таблица (прикрепить дочерние записи-переводов)

Приведите пример ответа от запроса, который хотите получить, на основе приведенных данных.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson