powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
25 сообщений из 88, страница 1 из 4
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38773905
ElenaTomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоит следующая задача: перемножить все имеющиеся варианты слов между
собой.

У меня есть текст в таблице, где каждое слово в отдельной строке

Студент
бежит
к
речке


Есть варианты слов в таблице:

для глаголов
бежит
ползет
тащится

Существительных
речке
озеру
морю

В итоге надо получить:

Студент бежит к речке
Студент ползет к речке
Студент тащится к речке
Студент бежит к озеру
Студент ползет к озеру
Студент тащится к озеру
Студент бежит к морю
Студент ползет к морю
Студент тащится к морю

Причем именно в виде предложений. Подскажите, пожалуйста, как?

Таблицы я сделала как:

Главная с предложением:
Id Id_Word Id_WordClass
1 1 5
2 2 1
3 2 5
4 1 2

C Id_WordClass = 5 - это неизменяемы слова. С Id_WordClass = 1 - глаголы.
Id_WordClass = 2 - существительные

В самих таблицах:
Id_Word Word
1 бежит
2 ползет
3 тащится

И также для существительных такую же стурктуру сделала. А как дальше писать джойны и главное, сделать слияние, чтобы не слились в одну строчку вообще все слова?
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38774079
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaTomsk,

1. пример соития строковых констант и переменых:
select concat('a',' и ','б',' сидели на ','трубе') from dual

2. есть также более хитрый оператор group_concat
который "склеит" значения из разных записей

3. Как сейчас поставлена, ваша задача не решается
средствами чистого SQL-а. Если что-то изменится
в предложении -- например к речке будет ползти
"Удав" или к морю побежит "Аспирант" то придется делать
еше один джоин на выборку (Удав, Студент, Аспирант).
Фактически, нужно будет строить и выполнять СКЛ
на лету. Это вполне возможно внутри "хранимой процедуры"
или даже проще на джаве, руби, c#, etc.

4. конкретно как есть сейчас, решение будет:

http://sqlfiddle.com/#!2/713b5c/9
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38774084
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон, в предыдушем решении
таблица Сентенсе даже лишняя,
результат зачетверился неподеЦки.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38774107
ElenaTomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,

Это жестко зашито на определенные id, как я понимаю? Свой пример я упростила, там будет не одна запись про студента, а много разных. Какого нибудь full join в mysql нет? Чтобы все же соединять по таблицам не зная точных id.
Хотелось бы, конечно, решить задачу на чистом sql.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38774134
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaTomsk,

да, как вы поставили задачу снача -- надо
чисто зашивать связки заранее.
Попробуйте переформулировать задачу
ближе к реальной.

Основная проблема -- чистый СКЛ не
подойдет если заранее вы не знаете какие
и сколько связок (джоинтов) будет в запросе.

>> Это жестко зашито на определенные id, как я понимаю?

В примере я жестко зашил две связки на Fixed на
два зашитых ИД.
То что связок зашиты -- этого не избежать (на чистом СКЛ)
а вот ИД -- наверное -- можно динамически вылавливать из
таблицы Сентенсе -- которая может работать как темплейт.

Опятьже -- раскрывайте реальную задачу,
"будем посмотреть"
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38774272
ElenaTomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,

Здравствуйте. Реальная задача такая же, там у меня только сложней структура.
Смысл - получить несколько произвольных предложений из кучи всех возможных. Я подумала, что сделать сразу все и потом выбрать из них нужное количество указав Limit будет лучше, чем вызывать одну процедуру несколька раз.

Основная таблица - tbl_detail
В ней id слова и id его типа + еще куча разных настроек, уточняющих для выбора слова.

Самих слов и их типов может быть много, до 100 на одно предложение, поэтому фиксированное значение я использовать не смогла бы. (((

Также думаю о том, что можно было бы сделать курсор со вставкой во временную таблицу, а потом выбрать все из нее.

Или сделать функцию, которая выбирала бы одно произвольное слово из кучи и Group_Concat ее и остальные значения

select group_concat (Word, my_function_noun(id_word), my_function_verb(id_word) from
tbl_detail where Id_Sentence 3 - как-то вот так.

Нужно наиболее производительное решение.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38774660
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaTomskjavajdbc,

Здравствуйте. Реальная задача такая же, там у меня только сложней структура.
Смысл - получить несколько произвольных предложений из кучи всех возможных. Я подумала, что сделать сразу все и потом выбрать из них нужное количество указав Limit будет лучше, чем вызывать одну процедуру несколька раз.

Основная таблица - tbl_detail
В ней id слова и id его типа + еще куча разных настроек, уточняющих для выбора слова.

Самих слов и их типов может быть много, до 100 на одно предложение, поэтому фиксированное значение я использовать не смогла бы. (((

Также думаю о том, что можно было бы сделать курсор со вставкой во временную таблицу, а потом выбрать все из нее.

Или сделать функцию, которая выбирала бы одно произвольное слово из кучи и Group_Concat ее и остальные значения

select group_concat (Word, my_function_noun(id_word), my_function_verb(id_word) from
tbl_detail where Id_Sentence 3 - как-то вот так.

Нужно наиболее производительное решение.

чтобы что-то ускорять надо сделать хоть одно
логически правильное работаюшее решение.

Например, сделайте решение полностью на
языке C#, Java, perl или что вы еще знаете?
Когда надо -- обрашайтесь к базе за набором
слов одного типа. Слысл -- в отработке алгаритма
на языке высогоко уровня а не в скорости.

Испоользование временых таблиц или массивов
языка програмирования -- на ваш вкус

Затем этот алгоритм можно переделать (или сразу писать)
на язык хранимых процедур. Здесь использование
временых таблиц приветствуется

Затем можно попробовать написать кодо-генератор который
по заданых значениям (конкретная структура предложения)
сгенерирует громадный СКЛ и вот он и может быть
самым быстрым.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38774893
ElenaTomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,

Здравствуйте. Извините, пожалуйста, но почему это решение неправильное? Структуру я могу поменять как угодно, почему сделать полность на sql, это ошибка? хочется написать процедуру, передать ей параметр и получить результат.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38775013
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaTomskпочему это решение неправильное?потому что в скле соединяются таблицы, причём заранее известно, какие с какими
у вас же количество соединений (о чём уже сказали выше) зависит от количества записей таблицах (по крайней мере в одной из них)
ElenaTomskхочется написать процедуру, передать ей параметр и получить результат
Нужно наиболее производительное решениеДа не вопрос
http://sqlfiddle.com/#!2/cd81a0/11
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select 
concat(
 "select concat_ws(',',"
 ,group_concat(concat(
    case id_wordclass when 1 then 'verb' when 2 then 'noun' else 'fixed' end
    ,id
    ,'.word')
  order by id)
 ,") as res from (select null from dual) ddd"
 ,group_concat(concat(
    " cross join "
    ,case id_wordclass when 1 then 'verb verb' when 2 then 'noun noun' else 'fixed fixed' end
    ,id)
  order by id)
 ," order by чего-нибудь limit 10") as prep_st
from sentence where Id_Sentence=3

получаем текст запроса, потом prepare+execute
При желании можно и от хардкода в виде этих verb/noun в case-ах избавиться, надо будет завести ещё одну табличку с именами словарных таблиц
ElenaTomskС Id_WordClass = 1 - глаголы.
Id_WordClass = 2 - существительныеidtablename1verb2noun5fixedну и запрос допилить соответствующим образом.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38775523
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> ElenaTomsk

>> Здравствуйте. Извините, пожалуйста, но почему это решение неправильное?
>> Структуру я могу поменять как угодно, почему сделать полность на sql,
>> это ошибка?

Как уж сказал tanglir -- чистый СКЛ требует что бы
все связки-жоинты были зафиксированы заранее.

>> хочется написать процедуру, передать ей параметр и получить результат.

А вот сделать эту задачу на "процедурном СКЛе" --
конечно возможно и нужно -- опятьже tanglir показал вариант.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38776628
ElenaTomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Здравствуйте. таблица со спискм слов у меня уже есть. Я ваш код поменяла по своему разуменю, он не работал. Получается вот так:

Тогда в одной строке в первой сразу видно что студент встречается дважды, это не правильно. У меня еще в таблице деталей, основная которая, есть поле OrderWord, в нем хранится порядок, на каком месте слово в предложении. Только даже если сортировать по нему, то все равно будут два студента. :(
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38776648
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaTomskв нем хранится порядок, на каком месте слово в предложенииЯ думал, порядок слов задаётся в sentence.id, но там нигде нет указания, что на месте А с кодом 5(т.е. фиксированное) должно стоять именно слово Б, а не В, Г или Ё. Поэтому генерируются все возможные сочетания. Если у вас это всё-таки где-то задаётся, показывайте уже структуру. Настоящую, а не огрызки. И условие уточните, потому что если исходить из данных приведённой таблицы sentence, то мой вариант вполне себе правильный.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778024
ElenaTomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirпоказывайте уже структуру. Настоящую, а не огрызки. И условие уточните, потому что если исходить из данных приведённой таблицы sentence, то мой вариант вполне себе правильный.

Здравствуйте. Вот это будет практически полноценная структура, убрала только кучу незначащих здесь полей наподобией всех свойств глагола и тому подобного.

С огромным удовольствием и благодарностью распишу еще если что-то нужно!
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778052
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaTomsk,

1. более стандартным является суффих _id
а не префикс id_

2. попробуйте поместить ВСЕ слова в ОДНУ
таблицу и добавить поле typeword со значениями
'verb','fixed','adject'.... и.т.д. ну или
форенд-ки ИД на таблицу typeword

3. соответсвено таблица связок тоже будет одна.

4. далее, в какой таблице лежит шаблон ?
Каким образом из входных параметров (3, "для студентов")
получается цепочка 1,3,7,10,14 ?

авторВ итоге выбирается произвольный id - например, 3.
Далее выбирается тип предложения - "для студентов".

Получается некоторый шаблон получается:

1 - глагол
3 - знак препинания
7 - прилагательное
10 - существительное
14 - фиксированное слово

5. Что такое ID_PARENT=3 ? понятно что это заданое значение,
но для какой таблицы?

6. каким образом в результируюшей таблице
полился порадок которым мы наблюдаем?
Порядо типов слов получились 14,3,10,3,1,14,14 --
это никак не похоже на шаблон типов 1,3,7,10,14

7. Вам бы человека сначала нанять на написание
бизнесс задачи, а уж потом в СКЛ идти.
Ничего личного, я понимаю что задача интересная и
"кудато полезная", но куда она лезет --- сложно понять :-)
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778321
ElenaTomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте

javajdbcElenaTomsk,
2. попробуйте поместить ВСЕ слова в ОДНУ
таблицу и добавить поле typeword со значениями
'verb','fixed','adject'.... и.т.д. ну или
форенд-ки ИД на таблицу typeword


Я думала об этом. С одной стороны, оно упростит выборку, с другой - создаст кучу ненужных индексов. Общее число слов около 70 тысяч. При этом изменяемых среди них около 2 тысяч. А нужны будут индексы по всем свойствам глаголов, по всем свойствам прилагательных, существительных и еще индекс для поля, изменяемое это слово или нет.
И еще будет куча ненужных полей в таблице, глаголов меньше всего, а свойств у них больше всего.

javajdbc4. далее, в какой таблице лежит шаблон ?


есть сам текст, он лежит в таблице parent, есть он же, уже разбитый по словам и их типам, это в таблице detail

javajdbcКаким образом из входных параметров (3, "для студентов")
получается цепочка 1,3,7,10,14 ?


автоматически определятся по наличию слова в определенной таблице.

1 - глагол
3 - знак препинания
7 - прилагательное
10 - существительное
14 - фиксированное слово[/quot]

javajdbc5. Что такое ID_PARENT=3 ? понятно что это заданое значение,
но для какой таблицы?


Как я уже говорила выше лежит таблица parent, в которой образец "Студент идет к морю". Далее этот образец автоматически распознается и ложиться уже в таблицу detail. основная работа идет с ней.

javajdbc6. каким образом в результируюшей таблице
полился порадок которым мы наблюдаем?
Порядо типов слов получились 14,3,10,3,1,14,14 --
это никак не похоже на шаблон типов 1,3,7,10,14


Это не порядок слов. Порядок определятся в positionword. "14,3,10,3,1,14,14" - это типы слов,
1 - глагол
3 - знак препинания
7 - прилагательное
10 - существительное
14 - фиксированное слово

Получается так:
Неизменяемое
знак препинания
изменяемое существительное
знак препинания
глагол
Неизменяемое
Неизменяемое

javajdbc7. Вам бы человека сначала нанять на написание
бизнесс задачи, а уж потом в СКЛ идти.


Это не бизнесс задача, это моя курсовая и может быть дипломная потом. И хоть я и настоящая блондинка, но раньше все получалось, мне помогали совсем чуть-чуть, а сейчас этот человек не может:(
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778345
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaTomsk,
не придумывайте лишнего. Задача очень простая (если вы не занимаетесь формализацией языка, в чем я очень сомневаюсь)

исходные данные
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
 -- --------------------------------------------------------

-- глагол второе слово --
-- Структура таблицы `gl`
--

CREATE TABLE `gl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nam` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=Aria  DEFAULT CHARSET=utf8 PAGE_CHECKSUM=1 AUTO_INCREMENT=4 ;

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

INSERT INTO `gl` (`id`, `nam`) VALUES
(1, 'ушел'),
(2, 'побежал'),
(3, 'уехал');

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

-- местоимение - первое слово
-- Структура таблицы `m`
--

CREATE TABLE `m` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nam` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=Aria  DEFAULT CHARSET=utf8 PAGE_CHECKSUM=1 AUTO_INCREMENT=4 ;

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

INSERT INTO `m` (`id`, `nam`) VALUES
(1, 'Я'),
(2, 'студент'),
(3, 'препод');

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

-- подлежащее третье слово
-- Структура таблицы `pl`
--

CREATE TABLE `pl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nam` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=Aria  DEFAULT CHARSET=utf8 PAGE_CHECKSUM=1 AUTO_INCREMENT=4 ;

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

INSERT INTO `pl` (`id`, `nam`) VALUES
(1, 'река'),
(2, 'поле'),
(3, 'небо');

окончательный запрос - простое декартовое произведение (!!!???)
Код: sql
1.
2.
SELECT m.nam, gl.nam, pl.nam
FROM m, gl, pl;


результат
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Я	ушел	река
студент	ушел	река
препод	ушел	река
Я	побежал	река
студент	побежал	река
препод	побежал	река
Я	уехал	река
студент	уехал	река
препод	уехал	река
Я	ушел	поле
студент	ушел	поле
препод	ушел	поле
Я	побежал	поле
студент	побежал	поле
препод	побежал	поле
Я	уехал	поле
студент	уехал	поле
препод	уехал	поле
Я	ушел	небо
студент	ушел	небо
препод	ушел	небо
Я	побежал	небо
студент	побежал	небо
препод	побежал	небо
Я	уехал	небо
студент	уехал	небо
препод	уехал	небо
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778352
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исходя из понимания простой вещи, усложняйте для дальнейшего изучения-понимания...
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778515
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovпростое декартовое произведение (!!!???)Ага "Но есть один нюанс" (с). Вернее, даже два:
1) заранее неизвестно ни количество, ни типы слов в предложении
2) отдельные слова должны быть фиксированы
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778544
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите постановку задачи в http://sqlfiddle.com/#!2/265abe/1
данные
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
create table t1 as -- 1
select  1 id1, 'Студент' Word1 union all
select  2 , 'Аспирант' union all
select  3 , 'Уголовник';

create table t2 as -- 2
select  1 id2, 'бежит' Word2 union all
select  2, 'ползет' union all
select  3, 'тащится';

create table t3 as -- 3
select  1 id3, 'к речке' Word3 union all
select  2, 'к озеру' union all
select  3, 'к морю' union all
select  4, 'от безделья';

create table t4 as -- 4
select  1 id4, 'равнодушно' Word4 union all
select  2, 'весело' union all
select  3, 'утомленно' union all
select  4, 'грустно';

Create table Sentence (
  pnum int, wnum int,
  wid int, cid int);
insert Sentence values
  -- 1. Студент утомленно тащится к морю
  (1,1,1,1),(1,2,3,4),(1,3,3,2),(1,4,3,3)
  -- 2. от безделья угловник тащится
  ,(2,1,4,3),(2,2,3,1),(2,3,3,2);

запрос на формирование заданных шаблонов фраз
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select s.pnum
  , group_concat(
    coalesce(Word1, Word2, Word3, Word4)
    order by s.wnum
    separator ' '
    )text
from Sentence s
left join t1 on t1.id1=s.wid and s.cid=1
left join t2 on t2.id2=s.wid and s.cid=2
left join t3 on t3.id3=s.wid and s.cid=3
left join t4 on t4.id4=s.wid and s.cid=4
group by s.pnum
;

PNUM TEXT1 Студент утомленно тащится к морю2 от безделья Уголовник тащится

Требуется сформировать по заданным шаблонам все возможные вариант построения фраз
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778593
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и тут мне стало интересно...
авторТребуется сформировать по заданным шаблонам все возможные вариант построения фраз
вот фразы
Код: plaintext
1.
2.
маша мыла раму
папа забивает гвоздь
мама готовит обед
что надо сделать? Запрос для построения этих фраз? Если варианты построения, то какие еще варианты могут быть?
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778607
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот портянка, покрутите
на тестовых дынных вроде работает
только concat_ws почему-то чудит, если унутре у него есть подзапросы - я переделал на простой конкат, только добейте в результирующий запрос пробелов
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
set @idparent=3;
select 
concat(
 "select concat("
 ,group_concat(case id_wordtype
     when 1  then concat('verb',positionword,'.word')
     when 10 then concat('noun',positionword,'.word')
     when 3  then concat('punctuat',positionword,'.word')
     -- <...>
     when 14/*fixed-id*/ then 
      concat('(SELECT f.word FROM fixed f join detail d on f.id=d.id_word where d.positionword=',positionword,' and d.id_parent=',@idparent,')')
     else '\'<unknown wordtype!>\''
     end
  order by positionword)
 ,") as res from (select null from dual) ddd"
 ,group_concat(case id_wordtype
     when 1  then concat('cross join verb verb',positionword)
     when 10 then concat('cross join noun noun',positionword)
     when 3  then concat('cross join punctuat punctuat',positionword)
     -- <...>
     when 14/*fixed-id*/ then ''
     else ''
     end
  order by positionword separator ' ')
 ," order by 1 limit 10") as prep_st
from detail where Id_Parent=@idparent


Alex_Ustinovчто надо сделать? Запрос для построения этих фраз?Перечитайте тему, ТС в принципе всё объяснила, в особенности в последних постах.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778610
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaзапрос на формирование заданных шаблонов фразНу и опять же 16713331 . Изменилось предложение, и превед запросу.
ТС как раз и хочет не строить под каждое предложение запрос ручками.
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778614
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как в фильме "Начни сначала":
- Вот у меня в песне все понятно - НА НЕДЕЛЬКУ ДО 2-ГО Я УЕДУ В КОМАРОВО...

Какие еще могут быть варианты?
Есть таблицы (четыре), это понятно.
непонятна логика заполнения табл. Sentence (!!!) Это уже готовые фразы или ВАРИАНТЫ возможных отношений слов в таблице?


Вот это я так понимаю - результат:
1 Студент утомленно тащится к морю
2 от безделья Уголовник тащится

А где условие задачи?
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778617
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Ustinovи тут мне стало интересно...
авторТребуется сформировать по заданным шаблонам все возможные вариант построения фраз
вот фразы
Код: plaintext
1.
2.
маша мыла раму
папа забивает гвоздь
мама готовит обед
что надо сделать? Запрос для построения этих фраз? Если варианты построения, то какие еще варианты могут быть?
По шаблону "уголовник тащится" должны быть построены фразы {слово из T1}{слово из T2}, то есть
Код: plaintext
1.
2.
"Студент   бежит", "Студент   ползет", "Студент   тащится",
"Аспирант  бежит", "Аспирант  ползет", "Аспирант  тащится",
"Уголовник бежит", "Уголовник ползет", "Уголовник тащится"
но исключить исходную фразу "уголовник тащится"

Аналогично по шаблону "утомленно ползет к речке" должны быть построены фразы {слово из T4}{слово из T2}{слово из T3}, за исключением самого шаблона
...
Рейтинг: 0 / 0
перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
    #38778619
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

я так понял, lamer yuga тоже учится параллельно или как то так и привела полное условие задачи...
...
Рейтинг: 0 / 0
25 сообщений из 88, страница 1 из 4
Форумы / MySQL [игнор отключен] [закрыт для гостей] / перемножить все имеющиеся варианты слов - помогите, пожалуйста ! !!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]