11 AĞUSTOS 2009, Salı
MySQL - UPDATE sorgusu, SELECT Sorgusu dayalı
Eğer iki olay tarih-saat dayanan arasında bir ilişki olup olmadığını kontrol etmek istiyorum (aynı tablo).
Tek bir veri kümesi belirli olaylar tarihi-bitiş zamanını içerir ve diğer veri kümesi başlayan diğer olaylar için tarih-saat içerir.
Eğer ilk olay ikinci olay daha önce tamamlanırsa onları bağlamak istiyorum.
Ben şimdiye kadar ne var:
SELECT name as name_A, date-time as end_DTS, id as id_A
FROM tableA WHERE criteria = 1
SELECT name as name_B, date-time as start_DTS, id as id_B
FROM tableA WHERE criteria = 2
Sonra ben onlara katılın:
SELECT name_A, name_B, id_A, id_B,
if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B
Sonra, validation_check alanım dayalı, SELECT iç içe olan bir GÜNCELLEŞTİRME sorgusu çalıştırabilir miyim?
CEVAP
11 AĞUSTOS 2009, Salı
Aslında bunu iki şekilde yapabilirsiniz:
MySQL update join kullanımı:
update tableA a
left join tableB b on
a.name_a = b.name_b
set
validation_check = if(start_dts > end_dts, 'VALID', '')
SQL sözdizimini ANSI:
update tableA set validation_check =
(SELECT if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B
WHERE id_A = tableA.id_A)
Sizin için en doğal görünen bir bebeği seç.
Bunu Paylaş:
'saha listesinde bilinmeyen sütun...
MySQL Insert Nerede sorgusu...
Ve tüm tablodaki metin mysql sorgusu k...
Nasıl yinelemeleri önlemek için SQL Se...
Bir DataTable üzerinde SERİ sorgusu...