SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • adrianisen

    adrianisen

    25 Kasım 2009
  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • MrMimoB

    MrMimoB

    11 NİSAN 2011