|
|
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
как написать update нескольких полей одной таблицы полями др. таблицы? т.е. типа такого: update table1 set table1.f1 = table2.f1, table1.f2 = table2.f2, ... where table1.f3 = table2.f3 так не работает конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 15:17 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. У-вы. Или так, или процедуру писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 15:23 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
спасибо. так и думал ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 15:27 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
хотя и так тоже не получается. мне надо в условии update'а написать where table1.f3 = table2.f3 в ответ получаю типа Column unknown. table2.f3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 15:34 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
То, что вы хотите написать в условии для изменения можно попытаться сделать так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 15:52 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
в итоге написал процедуру. 2Могун а можно небольшой комментарий? plz может я совсем ламер, а может день сегодня такой ... но я не понял как тут теперь что ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:26 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
Если Вы не хотите изменить ВСЕ записи в table1, то, естественно, пишите условие, которое ограничивает набор строк, которые будут изменены. Из Вашего вопроса я сделал вывод(возможно неверный), что вам необходимо изменять только такие строки в table1, которые имееют ссылку на table2 по полю f3 - это и есть условие. Новые значения полей для table1 выбираются так, как писал Мимопроходящий, или же через ХП. Вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:35 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
как итог, вот такая тормозная конструкция: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:39 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
все подрубил! thanx меня немного смутила конструкция 1=(select count(*) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:44 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
Могун Код: plaintext 1. Ну ведь есть же нормальная конструкция EXISTS , нафига ж такой изврат?!. Почему бы не написать по людски: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:46 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
В данном случае EXISTS возможно читабельнее, насчет эффективности - не знаю, а привычка использовать COUNT(*) - из за NULL, из-за возможной необходимости знать точное количество совпадений (например 1<=COUNT(*) - одна или ни одной, 2=COUNT(*)-точно две) и хронической лени переписывать код целиком, проще цифирь и условие поправить. Привычка такая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:54 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
Ну и зря. Если нужно просто установить факт наличия записей, удовлетворяющих некоему условию, то COUNT() не самая эффективная конструкция. Особенно на больших объёмах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:59 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
есть конкретные результаты тестов? Умозрительно, я думаю, вы правы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 17:08 |
|
||
|
update нескольких полей одной таблицы полями др. таблицы?
|
|||
|---|---|---|---|
|
#18+
Есть ТЕСТ Там COUNT() даже не рассматривается как вариант. Если есть желание, можно прогнать его на приводимых скриптах. Результаты, имхо, будут впечатляющие ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 17:55 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32412390&tid=1579197]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 449ms |

| 0 / 0 |
