我有一个名为Details的表,这个表有_id字段作为主键。对于详细信息中的每条记录,我在另一个名为“通知”的表中有七条记录。详细信息的_id字段与Notifications表的PrimaryId字段映射。
现在我想将两个列,即imageUri和BirthDate从Details复制到Notifications中,其中_id of Details等于Notifications的PrimaryId字段。
到目前为止,我已尝试过以下内容:
INSERT INTO Notifications (imageUri, DOB) SELECT (imageUri, birthDate) FROM Details
但我没有任何线索如何添加Where子句。请给我一个标题
答案 0 :(得分:3)
只需在WHERE
部分添加SELECT
条件,例如
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)
答案 1 :(得分:1)
尝试:
insert into Notifications (imageUri, DOB)
AS select d.imageUri, d.birthDate
from Details d, Notifications n
where d._id = n.PrimaryId
答案 2 :(得分:1)
使用此
INSERT INTO Notifications (imageUri, DOB)
SELECT D.imageUri, D.birthDate FROM Details D
INNER JOIN Notifications N on d._id_FieldName=N._id_FieldName
答案 3 :(得分:0)
我认为您可以在查询末尾添加where子句:
INSERT INTO Notifications (imageUri, DOB) SELECT (imageUri, birthDate) FROM Details WHERE ...
您可以在此处查看详细信息:http://www.tutorialspoint.com/sqlite/sqlite_insert_query.htm