日時に基づいて 2 つのイベント間に関連性があるかどうかを (同じテーブルから) 確認する必要があります。
1 つのデータ セットには特定のイベントの終了日時が含まれ、もう 1 つのデータ セットには他のイベントの開始日時が含まれます。
最初のイベントが 2 番目のイベントの前に完了する場合は、それらをリンクしたいと思います。
これまでのところ、次のものがあります:
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
それから私は彼らに加わります:
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
その後、validation_check フィールドに基づいて、SELECT がネストされた UPDATE クエリを実行できますか?
ベストアンサー1
実際には、次の 2 つの方法のいずれかでこれを行うことができます。
MySQL 更新結合構文:
UPDATE tableA a
INNER JOIN tableB b ON a.name_a = b.name_b
SET validation_check = if(start_dts > end_dts, 'VALID', '')
-- where clause can go here
ANSI SQL 構文:
UPDATE tableA SET validation_check =
(SELECT if(start_DTS > end_DTS, 'VALID', '') AS validation_check
FROM tableA
INNER JOIN tableB ON name_A = name_B
WHERE id_A = tableA.id_A)
あなたにとって最も自然と思われるものを選択してください。