From: Yüksel ÖZCAN (yukselozcan@celiknet.com)
Date: Wed 08 Oct 2003 - 10:52:52 EDT
Sanırım hemen alttaki kod kesinlikle calisacak
update stok_kartlari
set miktar = (select hareket_miktari from stok_hareketleri where
fis_no='000005' )
where stok_id = (select stok_id from stok_hareketleri where
fis_no='000005' )
Çalışmayabilir de :)) emin değilim açıkçası
----- Original Message -----
From: "Yüksel ÖZCAN" <yukselozcan@celiknet.com>
To: <linux-programlama@liste.linux.org.tr>
Sent: Wednesday, October 08, 2003 5:43 PM
Subject: [linux-programlama] Re: MySQL'de 2 islemi tek sorguda halletmek
> > Merhaba;
>
> Özgür bey ilginize teşekkür ederim.
>
> > Hemen bir deneme yapiyorum, evet cal=FDsti.
> > Sizin isinize yararmi bilmem tabi.
> >
> > update users
> > set LAST_LOGIN_TIME_STAMP=3D(select
> > LAST_LOGIN_TIME_STAMP-1
> > from users
> > where username=3D'ozgur' )
> > where username=3D'ozgur2'
> yalnız bana sunu gibi bisey lazim,
>
> update stok_kartlari
> set miktar = (select hareket_miktari, stok_karti_id
> from stok_hareketleri
> where fis_no='000005' )
> where stok_id = stok_karti_id
>
> yani stok kartlari tablosunda stok_id sine bakip miktar kismini
guncellemem
> gerekiyor.
> Bunun içinde stok harekeleri tablosunda fis numarasi '000005' olan
> hareketlerin stok_id ve hareket_miktari' ni alip, aldigim stok_id sine
> bakarak ilgili stok kartinin miktar kismini guncellemek istiyorum. Eve
> gidince yukarıdaki ornekleri deneyecegim ama sanırım calismayacak.
Simdilik
> bu islemi 2 sorguda dongu ile hallediyorum. Yalnız bunlarıi c(php degil)
ile
> yaptigim icin tablo optimizasyonuna bi sekilde zarar veriyor. Sanırım
> mysql_free_result falan yapmam lazim. Onu da yapamiyorum cunku ilgili
> stok_fisinde 1'den fazla kayıt oldugunda(genelde cok kayit olur)
free_result
> yaparsam sadece ilk satiri alir, fis icerisindeki diger satirlara
ulasamam.
> Optimizasyonun bozulması dataları riske atacagindan dolayi sanirim daha
> farklı(muhtemelen uzun) çözümler bulmam gerekiyor. Herseye ragmen
birisinin
> konuyla ilgilenmesi guzel ve takdir edilecek bir olay.
>
> >
> >
> > Kolay gelsin.
> >
> > not: oracle da denedim. (ikinci query i sub query saymazsak mysqlde de
> > calismali)
> >
> > Ozgur Ugur
> > Bil.Muh-Istanbul
> > Infotech
>
>