我想知道是否可以在SQL中執行類似下面的操作。SQL有條件地選擇一行
假設你有三張表。 字段ID爲通過所有數據庫
Table1 - PK Id, ....
Table2 - PK Id, T3FK, TimeStamp,....
Table3 - PK Id, identity, Status, ....
Table1.id (1 to *) Table 2.id
Table1.id (1 to *) Table 3.id
Table2.id+Table2.T3FK (1 to *) Table3.Id+Table3.identity
我想下面的選擇語句組合關係鍵:
SELECT T1.*, T2.*
FROM Table1 T1
JOIN Table2 T2 ON T1.Id = T2.Id
JOIN Table3 T3 on T1.Id = T3.Id
WHERE T3.Status = 'A'
AND T2.P3Fk = T3.identity
AND T1.id IN (SELECT Id
FROM ListOfIds)
...和:
SELECT T1.*, T2.*
FROM Table1 T1
JOIN Table2 T2 ON T1.id = T2.id
JOIN (SELECT id, MAX(TimeStamp) as TimeStamp
FROM Table2
GROUP BY id) t2a ON t2.id = t2a.id
AND t2.TimeStamp = t2a.TimeStamp
WHERE t1.Id IN (SELECT Id
FROM ListOfIds)
所以基本上我我試圖做的是有一條select語句返回 T2 where T2.P3FK = T3.identity and T3.status = 'A'
中的行,如果不存在,則 返回T2中具有最新時間戳的行。我需要做一個ID列表,而不只是一個ID。
對於什麼數據庫? –