Всем доброго! Подскажите как объединить две таблицы и создать новую в той же базе. Нужно сделать запрос phpMyAdmin. Нужно получить следующий результат: Код (Text): INSERT INTO `wp_unik_synonyms_ru` (`s_id`, `keyword`, `syn`) VALUES (1,'привет' ,'здорово,здравствуй'), (2,'здравствуй' ,'привет,здорово,здравствуйте'), (3,'условия' ,'данные'), (4,'вхождение' ,'вступление,'), (5,'нередко' ,'зачастую,неоднократно,частенько,часто'); Из следующих таблиц word и sun: Код (Text): INSERT INTO `word` (`id`, `key`) VALUES (1,'привет'), (2,'здравствуй'), (3,'условия'), (4,'вхождение'), (5,'нередко'); Код (Text): INSERT INTO `sun` (`id`, `keysun`, `s_id`) VALUES (1,'здорово',1), (2,'здравствуй',1), (3,'привет',2), (4,'здорово',2), (5,'данные',3), (6,'здравствуйте',2), (7,'вступление',4), (8,'зачастую',5), (9,'неоднократно',5), (10,'частенько',5), (11,'часто',5); Где s_id необходимо расположить через запитую? Зарание спасибо!
Пока решил пойти другим путем, как можно сделать ... но пока не до конца понял для начала вгоняю в базу следующие таблицы: Код (Text): CREATE TABLE IF NOT EXISTS `word` ( `id` int(11) NOT NULL AUTO_INCREMENT, `keyword` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `syn` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `kkey` (`keyword`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=97161 ; INSERT INTO `word` (`id`, `keyword`) VALUES (1,'привет'), (2,'здравствуй'), (3,'условия'), (4,'вхождение'), (5,'нередко'); CREATE TABLE IF NOT EXISTS `sun` ( `id` int(11) NOT NULL AUTO_INCREMENT, `keysun` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `s_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `kkey` (`keysun`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=97161 ; INSERT INTO `sun` (`id`, `keysun`, `s_id`) VALUES (1,'здорово',1), (2,'здравствуй',1), (3,'привет',2), (4,'здорово',2), (5,'данные',3), (6,'здравствуйте',2), (7,'вступление',4), (8,'зачастую',5), (9,'неоднократно',5), (10,'частенько',5), (11,'часто',5); а после использую выборку SELECT с выводом в файл, примерно таким способом: Код (Text): SELECT keyword into outfile 'd:/myfile.lst' -- указываем файл fields terminated by ',' -- разделитель полей lines terminated by '<br>' -- разделитель строки from word; Но как пока использовать правильно выборку незнаю. Мне нужен следующий вариант вывода: слово|синоним1,синоним2 Может кто знает как это осуществить? Или проще использовать GROUP_CONCAT?
Вроде получилось ... использовал следующий запрос: Код (Text): SELECT a.id, a.keyword, b.keysun AS sun FROM `word` a LEFT JOIN `sun` b ON a.id=b.s_id; SELECT a.id, a.keyword, GROUP_CONCAT(DISTINCT b.keysun ORDER BY b.keysun ASC SEPARATOR ', ') AS sun FROM `word` a LEFT JOIN `sun` b ON a.id=b.s_id GROUP BY a.id; получился следующий вывод в phpMyAdmin а вот как сделать экспорт в формат .sql или создать таблицу wp_unik_synonyms_ru с данными не могу понять...думаю это просто Может кто подскажет?
твои две таблицы это нормально организованные данные. да, через group_concat() их можно склеить и показать вместе, но для реальных задач обычно удобнее иметь их раздельно — это называется "отношение один ко многим". зачем тебе захотелось их склеить? расскажи задачу.
Нужна хорошая база синонимов для движка WP и других задач из 50 000 слов Добавлено спустя 9 минут 6 секунд: Но как их копировать в другую таблицу не могу понять ... поможете добить ... если вам нужна тоже база синонимов ... поделюсь. Я ее сдернул из программы USyn, тексты получаются более грамотные с уникальностью 75%. Поможете? Добавлено спустя 14 минут 43 секунды: Не подскажите, можно сделать копирование из двух таблиц в одну? Как это примерно выглядит? две функции Код (Text): INSERT INTO table1 INSERT INTO table2 SELECT * FROM table3; или Код (Text): INSERT INTO table1,table2 SELECT * FROM table3; или другой вариант?
Получать уникальные RSS новости с других сайтов для своих .... для этого мне нужна эта база синонимов для плагина WP. Сейчас понятна задача?
ты ведь не сам придумал эту структуру в первом посте. она видимо в плагине как раз используется. стоит "улучшить" как все сломается. зачем?
в плагине она используется дополнительно ... как синомайзер, но он не достаточно хорош для чтения переделанных текстов... походу все справился с поставленной задачей ... использовал способ с выводом в файл и собрал необходимую структуру слов. Использовал два запроса с созданием дополнительной таблицы: Код (Text): SELECT `s_id`, GROUP_CONCAT(`keysun`) as `keysun` FROM `sun` ORDER BY `id` GROUP BY `s_id` SELECT DISTINCT keyword, keysun FROM word, sun2 WHERE word.id = sun2.id into outfile 'd:/myfile.lst' -- указываем файл fields terminated by '|' -- разделитель полей lines terminated by '<br>' -- разделитель строки Теперь буду испытывать на плагине...