0

我有 1 个表auction_activity_notifications,需要从users表和列中插入 id item_watch,还需要连接email_templates表,还需要插入auction_activity_notifications

我在哪里插入用户和 item_watch 列的 ID 进行查询,我需要加入并插入email_templatesidemail_templatesauction_activity_notifications

INSERT INTO auction_activity_notifications (id_user, id_target)
SELECT id, item_watch 
FROM users AS u
LEFT JOIN auction_activity_notifications AS aa 

ON u.id = aa.id_user    
AND
u.item_watch=aa.id_target

我有这些列auction_activity_notifications

最后我需要将当前日期插入 created_date_time

id_email_templates, id_user , id_target , created_date_time

4

1 回答 1

1

在您的查询中再添加一个联接

INSERT INTO auction_activity_notifications (id_email_templates,id_user, id_target,created_date_time)
SELECT et.id,u.id, u.item_watch ,NOW()
FROM users AS u
LEFT JOIN auction_activity_notifications AS aa 
ON u.id = aa.id_user    
LEFT JOIN email_templates et ON (aa.id_email_templates=et.id)
AND
u.item_watch=aa.id_target

请注意,当连接表中的列相同时,请使用带有列名的表别名,这样可以保护列的不明确条件

对于当前日期时间,您可以使用datatypeastimestamp并通过设置CURRENT_TIMESTAMP和删除NOW()from select 和created_date_timefrom insert 来设置表列默认值,它会在插入和记录插入时自动添加当前时间戳

ALTER TABLE `table` CHANGE `created_date_time` `created_date_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; 
于 2013-08-20T06:11:34.347 回答