|
|
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Каким образом можно выбрать из таблицы jobs 16 случайных значений j_id и вставить их в таблицу studs в поле s_job? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 18:55:51 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
gsteКаким образом можно выбрать из таблицы jobs 16 случайных значений... ORDER BY RAND() LIMIT 16 gsteвставить их в таблицуINSERT ... SELECT ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 19:30:28 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Akina, gste в поле s_job Мне нужно вставить в существующие 16 записей в поле s_job 16 случайных записей поля j_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2013, 20:45:04 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Либо вставить новые записи, либо обновить существующие записи. Определитесь с задачей, что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 09:07:14 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Akina, каким образом можно обновить существующие 16 записей таблицы s_*, чтобы в поле s_job вставить 16 случайных значений из поля j_id таблицы j_*? Точнее, нужно отсортировать j_id по RAND(), выбрать 16 первых (LIMIT 16) и вставить В СУЩЕСТВУЮЩИЕ ЗАПИСИ (UPDATE) в поле s_job. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 09:20:19 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Всё равно часть сведений - мимо. Итак, есть некая таблица j_*, в ней есть поле j_id и некоторое количество записей, из которых следует взять случайные 16. Сразу вопрос - в этой таблице гарантированно имеется 16 записей? или может статься, что их меньше? И второй - значения в поле j_id уникальны? а если нет - нужны просто 16 случайных, или 16 случайных уникальных? Далее - есть некая таблица s_*, в ней есть поле s_job. Именно в ней надо обновить записи, вставив в них добытые случайные значения. Тут тоже несколько вопросов, но главный - а сколько в этой таблице записей? Ровно 16? не более 16? или может быть и больше? А если количество выбранных из первой таблицы записей не равно количеству во второй - как выбирать, какие обновлять, а какие нет? и как выбирать, каким значением обновлять каждую конкретную запись? Впрочем, если равно, вопрос практически тот же - как устанавливать соответствие? Как видишь, вопросов ещё очень дохрена... определяйся с задачей. До конца. По всем нюансам и возможным вариантам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 09:56:48 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Akina, Akinaв этой таблице гарантированно имеется 16 записей? Я написал 16, значит 16. Меньше не будет. Akinaзначения в поле j_id уникальны? Я не написал, значит не имеет значения. Даже если будет половина одинаковы j_id, все равно нужно ИЗ НИХ выбрать 16 случайных и записать в существующие поля s_job. В данном случае они всегда будут уникальны. Могут быть разрывы, но они тоже не имеют значения исходя из постановки задачи (выбирать j_id нужно только из существующих). Akinaа сколько в этой таблице записей? Опять же, я сказал 16. По меньшей мере в j_* 21 запись, которые нужно распределить по 16 существующим записям s_*. По большей мере, j_* всегда больше s_*. AkinaА если количество выбранных из первой таблицы записей не равно количеству во второй - Ограничение в 16 идет от количества записей во второй таблице. Задача - обновить 16 существующих записей, не нужно добавлять новые или обновлять лишь 15.5 записей, нужно обновить столько, сколько есть. Я конкретизировал, попросив помочь с запросом именно для 16. Akinaи как выбирать, каким значением обновлять каждую конкретную запись? Я написал, что нужно обновить случайными значениями второй таблицы конкретного поля j_id. Смысл в том, что j_* это задания, которых всегда больше, чем студентов в s_*. Нужно распределить в случайном порядке существующие задания среди существующих студентов. Каждому студенту из s_id соответствует одно задание j_id. Прощу прощения за неточность исходной формулировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 11:08:19 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
gste , Ваше раздражение есть свидетельство предположения, что я занимаюсь праздным вопрошательством? Поверьте, мне абсолютно пофиг, решите Вы свою (обратите внимание - не мою!) проблему. И, опять же поверьте, я всегда найду чем ещё заняться. Да и постов на форуме у меня достаточно. Так что это не попытка накрутить счётчик ничего не значащим трындежом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 12:18:09 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Akina, я прошу меня извинить за свои манеры, но я действительно не понимаю, зачем нужна такая детализация в тех вещах, которые вытекают из моего исходного вопроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 15:58:45 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Да потому что это РАЗНЫЕ задачи, и у них РАЗНЫЕ решения. Порой совершенно непохожие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 16:03:42 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Akina, разве я так сильно уточнил задачу, ответив на ваши вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 16:10:17 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Давайте не будем ругаться :). Еще раз извиняюсь. Все же хотел бы решить проблему. В моем представлении нужно взять из j_* (jobs) 16 случайных записей чем-то вроде < SELECT j_id FROM jobs ORDER BY RAND() LIMIT 16 > и вставить получившиеся значения в s_* (studs) с помощью UPDATE studs, <...> SET s_job=<...>.j_id WHERE s_id=t1.rnum , где rnum - нумерация получившихся от <...> записей. Однако не получается создать такую <...>, чтобы в одном столбце rnum было по порядку от 1 до 16, а в другом случайные j_id из jobs. Вот моя попытка написать запрос с нумерацией, но получается декартово произведение Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Результат (частично) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Собственно, если я правильно понимаю, нужно сформировать правильную нумерацию для этой временной таблицы t2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 20:17:52 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Увы, к обсуждению никто не подключается, а я товарищ занудный... Пока для меня полностью ясна постановка первой части задачи. В таблице jobs имеется не менее 16 записей, и даже при наличии дублирующихся значений в поле j_id их следует считать различающимися (или допускаю, что на этом поле есть условие уникальности, и дубликатов там не встречается, что сути не меняет). А вот что делать со второй частью задания - мне совершенно непонятно. Выбрать - это элементарно, вставить - тоже, а вот обновить - это уже нетривиально... а определённости нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 20:38:25 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Насчёт же нумерации - перечитайте FAQ: Нумерация строк и другие вопросы про использование переменных . В приведённом нумерующем запросе явно наверчено лишнего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 20:39:49 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Akina, большое спасибо за ссылку. Переосмыслил свой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И, собственно, решение моей задачи: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 21:36:24 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
о как... они оба уникальны, оказывается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 22:27:34 |
|
||
|
Случайные значения
|
|||
|---|---|---|---|
|
#18+
Akina, для не уникальных Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2013, 01:07:47 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38453726&tid=1835780]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 330ms |

| 0 / 0 |
