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

StalkerClasses

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

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

hell0w0rd

Продвинутый новичок
Зачем так делать? Храни переводы в отдельной таблице и делай джойны как хочешь.
 

StalkerClasses

Новичок
Если во внешней таблице больше возможностей....
То это лучше - главное что бы можно было сделать выбрать все колонки (*) и сделать COUNT, LIMIT, ORDER и LIKE
 

hell0w0rd

Продвинутый новичок
StalkerClasses, у тебя почти всегда есть дополнительные поля, в итоге ты их либо дублируешь, либо хранишь null. Есть еще вариант с hstore/json полем, но что-то мне подсказывает, что у тебя mysql
 

hell0w0rd

Продвинутый новичок
Ну у тебя допустим посты: id, name, description, date - вот date будет либо дублироваться, либо NULL в переводах.
 

antson

Новичок
Партнер клуба
StalkerClasses, попробуй как все делают
Код:
CREATE TABLE IF NOT EXISTS `имятаблицы_i18n` (
  `id` int(11) NOT NULL,
  `locale` varchar(5) NOT NULL,
  `поле_которое_переводится` text,
  PRIMARY KEY (`id`,`locale`)
)
 

StalkerClasses

Новичок
StalkerClasses, кому нужны дампы в 2014 году?
Выкладывай на http://sqlfiddle.com/
Не совсем пойму - вроде вошел по Open ID, а как сохранить ссылку на код?

Почистил код (сохраню здесь на всякий случай).
PHP:
-- --------------------------------------------------------

--
-- Структура таблицы `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);


Всех с наступающим новым годом!


Пусть новый год принесет Вам радость и любовь!
 
Последнее редактирование:
Сверху