私が現在持っているものは次のとおりです。
UPDATE card, records
IF(records.date_returned == null) THEN SET
card.last_seen = records.date_loaned
ELSE SET card.last_seen = records.date_returned
WHERE card.card_no = records.card_no
ちょっとした背景 - テーブル レコードには、date_loaned と date_returned の 2 つの列があり、date_returned はデフォルトで null に設定されています。更新時にtemp_cardのlast_seen列をdate_returnedに変更できるかどうか疑問に思っていました
確かに無理だけど、運試ししてるみたい!
-編集- *私はそれが自動であることをちょっと望んでいました (例えば、レコードが更新されると、これが last_seen の変更を引き起こします)
-編集-答えてくれたみんなありがとう!これが私が導き出した解決策です:
AFTER UPDATE ON records
FOR EACH ROW
Update card A
INNER JOIN records B
SET A.last_seen =
(CASE WHEN B.date_returned=null then B.date_loaned Else B.date_returned END )
WHERE A.card_no = B.card_no