PDA

Orijinalini görmek için tıklayınız : Mysql Update iç içe sorgu hata veriyor


efsungokmen
23-03-2019, 21:43:07
Öncelikle herkese iyi akşamlar. Mysql 'de bir trigger oluşturacağım. Fakat öncelikle bir çalışması adına bir sorgu cümlesi test ediyorum. Sorgu cümlesi :
Update motor set bitisdate = NOW() Where id = (SELECT max(id)-1 FROM motor)

Olmasına rağmen motor tablosunun max id 'sini alıp bir önce ki satırın id için şimdi ki zamanı ekleyeceğim. Fakat aşağıda ki aldığım hata ile karşılaşıyorum
#1093 - Table 'motor' is specified twice, both as a target for 'UPDATE' and as a separate source for data

Bu hatayı gidermek için internette bir kaç araştırma yaptım tablonun ismini AS ile farklı bir Alias eklememe rağmen yine aynı hatayı alıyorum. Hatayı gidermek için ne yapmalıyım ?

maviuan
23-03-2019, 21:46:52
Şuradaki cevap işini görür.

https://stackoverflow.com/questions/47165521/1093-error-in-mysql-table-is-specified-twice

efsungokmen
23-03-2019, 21:54:40
Şuradaki cevap işini görür.

https://stackoverflow.com/questions/47165521/1093-error-in-mysql-table-is-specified-twice

Hocam hep id kısmına belirli bir değer yazmışlar bana daha çok id kısmının en son satırın bir önce ki id si gerekli. Bu hatayı araştırmıştım bayağı fakat bir çözümüne ulaşamadım ne yazık ki

maviuan
23-03-2019, 21:59:36
[/URL]

Hocam hep id kısmına belirli bir değer yazmışlar bana daha çok id kısmının en son satırın bir önce ki id si gerekli. Bu hatayı araştırmıştım bayağı fakat bir çözümüne ulaşamadım ne yazık ki

Şu çözmüyor mu işinizi?

Update motor set bitisdate = NOW() Where id = (select max from (SELECT max(id)-1 as max FROM motor) t)

efsungokmen
23-03-2019, 22:03:13
Şu çözmüyor mu işinizi?

Update motor set bitisdate = NOW() Where id = (select max from (SELECT max(id)-1 as max FROM motor) t)

Oldu hocam teşekkür ederim bende bu şekilde yazmıştım fakat demek ki bir şeyler dikkatimden kaçmış tekrardan çok teşekkür ederim