我需要更新其主鍵被另一個表中的特定列參考的所有記錄的特定列。(外鍵關系已經建立。)類似于我正在嘗試做的事情是這樣的:
表 1:三明治
| Sandwich(varchar) [主鍵] | 請求(布爾) |
|---|---|
| 薩拉米 | 1 |
| 熏牛肉 | 空值 |
| 火腿 | 0 |
| 火雞 | 1 |
表 2:請求
| 字符(varchar) | Sandwich (varchar) [三明治的外鍵] |
|---|---|
| 查理 | 火腿 |
| 萊納斯 | 火雞 |
| 馬西 | 火腿 |
| 露西 | 薩拉米 |
| 史努比 | 熏牛肉 |
如果請求中存在參考它的主鍵的記錄,我希望將 Sandwiches.requested 中的每個空值更新為 1。例如,由于 Pastrami 的 Sandwiches.requested 和 Snoopy 請求的 Pastrami 的值為空,我希望將 Sandwiches.requested 更新為 Pastrami 的 1,這樣 Sandwiches 看起來是這樣的:
表 1:三明治
| Sandwich(varchar) [主鍵] | 請求(布爾) |
|---|---|
| 薩拉米 | 1 |
| 熏牛肉 | 1 |
| 火腿 | 0 |
| 火雞 | 1 |
我知道如何:
SELECT SANDWICHES.SANDWICH, SANDWICHES.REQUESTED FROM SANDWICHES INNER JOIN REQUESTS ON SANDWICHES.SANDWICH = REQUESTS.SANDWICH WHERE REQUESTED = NULL
回傳:
| 三明治 | 已請求 |
|---|---|
| 熏牛肉 | 空值 |
告訴我要更新哪些,但說我的資料集太大而無法手動執行所有更新。如何創建更新命令來更新每場比賽?
uj5u.com熱心網友回復:
Update SANDWICHES JOIN REQUESTS ON SANDWICHES.SANDWICH = REQUESTS.SANDWICH set SANDWICHES.REQUESTED = 1 WHERE SANDWICHES.REQUESTED = NULL
uj5u.com熱心網友回復:
最直接的,只是:
update Sandwiches
set Requested=1
where Sandwich in (select distinct Sandwich from Requests)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/439331.html
上一篇:OracleSQL-在特定列類別中將行保留在組中,其中列的值數量較多
下一篇:獲取多對多表中未映射記錄的計數
