我有以下關系模型(星號之間的主鍵和帶有井號的外鍵):
SALLE ( *nSALLE* , nameSALLE)
POSTE ( *nPOSTE* , #nSALLE)
LOGICIEL ( *nLOG* , purchaseDate)
INSTALLER ( #nPOSTE , #nLOG,...)
問題是將系統日期歸因于LOGICIEL在 2018 年之前購買且安裝SALLE名稱為“SALLE3”的 purchaseDate
我知道這個想法是繼續加入表格,但我對如何嵌套陳述句感到困惑。
SQL> UPDATE LOGICIEL
2 SET purchaseDate= GETDATE()
3 WHERE EXTRACT(YEAR FROM purchaseDate) < 2018
4 AND EXISTS(
5 SELECT * FROM SALLE S
6 INNER JOIN POSTE P ON S.nSALLE=P.nSALLE
7 WHERE ...
uj5u.com熱心網友回復:
你很親密。只需加入安裝程式,郵寄和銷售他們的鑰匙。您可以為此使用EXISTS或IN。
UPDATE logiciel
SET purchaseDate = SYSDATE
WHERE purchaseDate < DATE '2018-01-01'
AND nlog IN
(
SELECT i.nlog
FROM installer i
JOIN poste p ON p.nposte = i.nposte
JOIN salle s ON s.nsalle = p.nsalle
WHERE s.namesalle = 'SALLE3'
);
鏈EXISTS或鏈也是如此IN:
AND nlog IN
(
SELECT i.nlog
FROM installer i
WHERE i.nposte IN
(
SELECT p.nposte
FROM poste p
WHERE p.nsalle =
(
SELECT s.nsalle
FROM salle s
WHERE s.namesalle = 'SALLE3'
)
)
);
最后,這是個人喜好問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/408369.html
標籤:
上一篇:在這種情況下如何處理唯一性?
