簡體   English   中英

一個表中的SQL副本插入另一個表中-使用where子句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM