[英]SQL copy from one table insert into another - using a where clause
我有一個名為Details的表,該表具有_id字段作為主鍵。 對於“詳細信息”中的每個記錄,我在另一個表中還有七個記錄稱為“通知”。 Details的_id字段與Notifications表的PrimaryId字段映射。
現在,我想將兩列(即imageUri和BirthDate)從Details復制到Notifications中,其中Details的_id等於Notifications的PrimaryId字段。
到目前為止,我已經嘗試了以下方法:
INSERT INTO Notifications (imageUri, DOB) SELECT (imageUri, birthDate) FROM Details
但是我不知道如何添加Where子句。 請給我一個標題
只需在SELECT
部分中添加WHERE
條件即可,例如
INSERT INTO Notifications (imageUri, DOB)
SELECT d.imageUri, d.birthDate
FROM Details d
JOIN Notifications n
ON d._id = n.PrimaryId
此外,我認為您實際上是在做UPDATE
而不是INSERT
因為您在帖子中說過
對於“詳細信息”中的每個記錄,我在另一個表中還有七個記錄稱為“通知”
在這種情況下,如果您INSERT
則將在該字段的其余部分添加帶有null
新記錄,但不會update
舊記錄。 而且,對於您的情況,您不需要WHERE
子句,而需要JOIN clause
並指定條件。
update Notifications
set imageUri = (select imageUri
from Details WHERE _id = Notifications.PrimaryId),
DOB = (select DOB
from Details WHERE _id = Notifications.PrimaryId)
嘗試:
insert into Notifications (imageUri, DOB)
AS select d.imageUri, d.birthDate
from Details d, Notifications n
where d._id = n.PrimaryId
用這個
INSERT INTO Notifications (imageUri, DOB)
SELECT D.imageUri, D.birthDate FROM Details D
INNER JOIN Notifications N on d._id_FieldName=N._id_FieldName
我認為您可以在查詢末尾添加where子句:
INSERT INTO Notifications (imageUri, DOB) SELECT (imageUri, birthDate) FROM Details WHERE ...
您可以在此處查看詳細信息: http : //www.tutorialspoint.com/sqlite/sqlite_insert_query.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.