
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.05.2014, 21:18:47
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
UPDATE users_list SET sum1 = sum1 + ( SELECT SUM(sum1) FROM users_list WHERE user_name IN ( SELECT user_login FROM users_list) )*x Ошибка: You can't specify target table 'users_list' for update in FROM clause ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.05.2014, 22:47:57
|
|||
|---|---|---|---|
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Запрос какой-то бессмысленный... И если нужен именно такой запрос, то промежуточная таблица не нужна, достаточно одной переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2014, 00:24:30
|
|||
|---|---|---|---|
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
XMystic, почитайте про многотабличныый апдейт. Т.е. вроде можно сделать типа промежуточной таблицы на лету Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2014, 08:12:40
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Понял. Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2014, 08:21:12
|
|||
|---|---|---|---|
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
XMystic, всегда пожалуйста, главное --- чтоб сработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.05.2014, 11:26:23
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
miksoftЗапрос какой-то бессмысленный... И если нужен именно такой запрос, то промежуточная таблица не нужна, достаточно одной переменной. запрос не просто бесмысленый, а полная чушь Код: sql 1. по русски ктото скажет что должно получиться??? PS target = select * from origin_table where user_name IN (select user_login from origin_table) тоесть у нас есть пересечение множества значений логинов и имём, и с этим подмножиством оригинальной таблицы мы работаем. а что хотел просумировать профессор - загадка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.05.2014, 20:12:56
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Пытаюсь понять, как делаются реферальные системы Я так понимаю, там надо в каждой строке реферера добавить % реферала, при этом рефералов может быть как много, так и не быть вовсе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.05.2014, 20:28:17
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Кстате, чтобы не создавать новую тему (очень простые вопросы, но ответ в гугле ненашел) Есть таблица, допустим table1 В ней есть поля user (логин пользователя, уникальное), ballance (сумма денег на счету) Как ко всем пользователям в таблице Table1 к полю ballance добавить 10%. Вроде работает такой запрос UPDATE table1 SET ballance = ballance + ballance*10/100 WHERE user_login=user_login Как убедится, что в ballance от одного пользователя не попадет ballance другого пользователя? Надо ли как-то указывать, что данные надо брать именно из текущей строки? И надо ли здесь условие WHERE? -- и без него вроде все работает, но страшновато как-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.05.2014, 20:49:38
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Чтобы убедиться сделайте такой запрос Код: sql 1. Далее работает аналогично, только обновляет записи Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.05.2014, 22:57:12
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Alex_Ustinov, Спасибо ) Вроде работает. Переделал первый запрос -- Ошибку не выдает, но и работает неверно, надо чтобы происходило начисление 10% реферальных (от суммы рефералов user_referer): Есть таблица: users_list user_sum -- Балланс пользователя user_referer -- Реферер пользователя (равно логину пользователя, который пригласил, может быть пустым) user_login -- Логин пользователя Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Проблемма в том, что сумма (временная таблица tmp) считается только 1 раз, а потом просто добавляется ко всем остальным строкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.05.2014, 09:03:05
|
|||
|---|---|---|---|
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
XMystic Код: sql 1. ППЦ условие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.05.2014, 11:44:25
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
XMysticКстате, чтобы не создавать новую тему (очень простые вопросы, но ответ в гугле ненашел) Есть таблица, допустим table1 В ней есть поля user (логин пользователя, уникальное), ballance (сумма денег на счету) Как ко всем пользователям в таблице Table1 к полю ballance добавить 10%. Вроде работает такой запрос UPDATE table1 SET ballance = ballance + ballance*10/100 WHERE user_login=user_login Как убедится, что в ballance от одного пользователя не попадет ballance другого пользователя? Надо ли как-то указывать, что данные надо брать именно из текущей строки? И надо ли здесь условие WHERE? -- и без него вроде все работает, но страшновато как-то. чувак...теперь уже мне страшно. я уже молчу про знания математики (а+а*10/100) = а*1.1 но с такими знаниями мускла... скажи что за систему ты поддерживаешь...хочу знать куда не стоит вкладывать деньги. ЗЫ а серьёзно - тебе язык надо учить баз данных - это один два дня времени(никто не говорит идеально всё, основы) - чтобы либо знал как сделать, либо точно понимал, что ты знаешь а чего нет и надо прочитать в доках... а то точно юзеры без денег остануться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.05.2014, 11:47:18
|
|||
|---|---|---|---|
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
alex564657498765453а то точно юзеры без денег останутьсявангую, что не "без денег", а "без некой игровой валюты" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.05.2014, 23:04:45
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
alex564657498765453XMysticКстате, чтобы не создавать новую тему (очень простые вопросы, но ответ в гугле ненашел) Есть таблица, допустим table1 В ней есть поля user (логин пользователя, уникальное), ballance (сумма денег на счету) Как ко всем пользователям в таблице Table1 к полю ballance добавить 10%. Вроде работает такой запрос UPDATE table1 SET ballance = ballance + ballance*10/100 WHERE user_login=user_login Как убедится, что в ballance от одного пользователя не попадет ballance другого пользователя? Надо ли как-то указывать, что данные надо брать именно из текущей строки? И надо ли здесь условие WHERE? -- и без него вроде все работает, но страшновато как-то. чувак...теперь уже мне страшно. я уже молчу про знания математики (а+а*10/100) = а*1.1 но с такими знаниями мускла... скажи что за систему ты поддерживаешь...хочу знать куда не стоит вкладывать деньги. ЗЫ а серьёзно - тебе язык надо учить баз данных - это один два дня времени(никто не говорит идеально всё, основы) - чтобы либо знал как сделать, либо точно понимал, что ты знаешь а чего нет и надо прочитать в доках... а то точно юзеры без денег остануться Ну... с математикой надо может быть и подружится, хотя, по поводу (а+а*10/100) = а*1.1 -- там вместо 10 задумана переменная из PHP, так что делить, мне кажется всеравно прийдется... Никакую систему, я пока что не поддерживаю, просто изучаю PHP и MySQL, но в будующем все может быть... Ну... Раз надо учить язык, значит буду учить... Книжечку не подскажешь? -- Только не 3х томник какой-то ))) п.с. Вопрос решил путем разбиения на 2 запроса и цикла while в PHP. Всем спасибо. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2014, 04:55:55
|
|||
|---|---|---|---|
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2014, 11:59:06
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
ТОВАРИЩИ, раз уж зашол разговор про многотабличный апдейт у меня была ситуация(и нивкакую не работало) Users(iduser,...) balance(idbalance,money,last) - idbalance=iduser для каждого юзера, моней - текущий баланс, ласт - время последнего списание средств (типо билинг начал делать) + Files(idfile,size,fk_iduser,ctime,....) первичный ключ,размер,ссылка на владельца,время создания ИТАК перед запуском билинга, надо инициализировать стартовую ситуацию, пощитать сколько накаполо денег пока билинга небыло. ДЕЛАЮ Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. писал по памяти что я делал, может где ошибся, но логика была такой, и выдавало правильную выборку. пытался обновлять баланс по типу update t1 join t2 on(t1.id = t2.id) set t1.balance = t1.balance + t2.add_money у меня всегда совпадение первичного ключа, поэтому всегда будет апдейт, к текущему балансу дорисовать отрицательное число но оно постаянно ругалось на то что в подзапросе нельзя использовать баланс-таблицу. как я не пытался на лету формировать ...всёравно упорно не хотело сработало только по типу INSERT INTO ... ON DUPLICATE KEY UPDATE почему так и не понял. может ктото привести пример апдейта из джоина, таблицы и ПОДЗАПРОСА(от этой же таблицы и какойто другой) и чтобы оно не ругалось. у меня не получилось на лету создать временую таблицу. ТРИГЕРОВ на изменяемую таблицу баланса нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2014, 12:20:09
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Все зависит от объемов конечно, как вариант для мелких таблиц Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2014, 12:21:41
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
да, повторился, javajdbc выше об этом же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2014, 13:11:22
|
|||
|---|---|---|---|
|
|||
Можно ли без создания временной таблици успешно выполнить запрос? Если да -- то как? |
|||
|
#18+
Alex_UstinovВсе зависит от объемов конечно, как вариант для мелких таблиц Код: sql 1. :) мелкая, система разрабатываеться, для тестов там около 18 юзер, соответсвено 18 балансов в таблице балансы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1834751]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 384ms |

| 0 / 0 |
