|
Тема
|
update v MySQL
|
|
Автор | ano (Нерегистриран) |
Публикувано | 11.09.02 18:45 |
|
Искам да напиша нещо такова
UPDATE table1 SET pole1='bla-bla' WHERE pole2=table2.pole15
обаче МySQL-a казва , че table2 му е непозната
къде бъркам?
В книгата на Дюбоа за синтаксиса на UPDATE пише, че след WHERE следва were_expr.
какво му е на "pole2=table2.pole15"?
| |
Тема
|
Re: update v MySQL
[re: ano]
|
|
Автор |
netKo () |
Публикувано | 12.09.02 11:01 |
|
normalno e da dava greshka.
moje bi shte e po-lesno, ako kajesh kakvo tochno se opitvash da napravish. kakuv e smisulut na table2.pole15 Taka napisano tova niama smisul, koy red na pole15 imash predvid?
There are only 10 types of people in this world: those who understand binary and those who don't
| |
Тема
|
podrobnosti
[re: netKo]
|
|
Автор | ano (Нерегистриран) |
Публикувано | 12.09.02 13:44 |
|
Имам една таблица с инфо за клиенти - info_za_klienti. Едно от полетата е телефона - tel, а друго - името му - ime.
Иамам и др. таблица с информация за проведени телефонни разговори - tel_razgovori. Едно от полетата е тел. номер, с който е говорено - tel.
Искам по телефонния номер да разпозная дали разговора е бил с клиент и ако е така да попълня полето govoreno_s в tel_razgovori с името на клиента.
Виждаше ми се смислено да направя така:
UPDATE tel_razgovori
SET govoreno_s=info_za_klienti.ime
WHERE info_za_klienti.tel = tel_razgovori.tel
но явно има някакъв проблем.
| |
Тема
|
Re: podrobnosti
[re: ano]
|
|
Автор |
NDeu (минаващ) |
Публикувано | 12.09.02 15:16 |
|
Мисля, че в MySQL няма да мине, но пробвай
UPDATE tel_razgovori
SET govoreno_s=(select ime from info_za_klienti where info_za_klienti.tel=tel_razgovori.tel )
Но-о-о...!
Не е зле да попрочетеш нормализациите
| |
Тема
|
Re: podrobnosti
[re: NDeu]
|
|
Автор | ano (Нерегистриран) |
Публикувано | 12.09.02 15:47 |
|
не минава
| |
Тема
|
Re: update v MySQL
[re: ano]
|
|
Автор | ano (Нерегистриран) |
Публикувано | 12.09.02 16:01 |
|
Ами да: http://www.mysql.com/doc/en/TODO_future.html
"1.8.3 Things That Must be Done in the Near Future
Atomic multi-table updates:
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;"
обаче не мога да чакам да излезе MySQL 3.24.
| |
|
да, не минава. моят опит показва, че mysql не позволява в update изрази да има обръщения към друга таблица, въпреки че в документацията не съм срещал подобно ограничение (salle да ме поправи ако греша).
проблема се решава така:
SELECT razgovori.*, klient.name FROM razgovori LEFT JOIN klient on (razgovoti.tel=klient.tel) ......
идеята надявам се е ясна (понаучил съм и аз нещо от тоя форум :-)
| |
Тема
|
Re: update v MySQL
[re: ano]
|
|
Автор |
netKo () |
Публикувано | 12.09.02 19:10 |
|
Zashto naistina shte dibrirash informacia (vij zabelejkata za normalizaciayata).
Ako taka sa ti postroeni tablicite i v daden moment iskash da vidish dali sred telefonnite povikvaniya ima takiva i s klienti, pravish go LEFT OUTER JOIN (kakto beshe pokazan).
Ako vse pak durjish da imash informaciata dublirana, shte se grijish pri vseki nov zapis ili promiana na zapis, podhodiashto da promeniash i zapis v drugata tablica
There are only 10 types of people in this world: those who understand binary and those who don't
| |
Тема
|
Re: update v MySQL
[re: ano]
|
|
Автор |
salle (Един такъв) |
Публикувано | 12.09.02 20:23 |
|
3.24 няма да има - почти 100% съм сигурен :)
4.1 е версията която поддържа "подзаявки" и от доста време е в процес на разработка ... но е прекалено рано дори за alpha
| |
|
|
|
|