php - 插入有2个连接?

标签 php mysql sql

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

我在哪里插入用户 ID 和 item_watch 列,我需要加入 email_templates 并将 ID 从 email_templates 插入到 auction_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、create_date_time

最佳答案

在查询中再添加一个联接

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

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

对于当前日期时间,您可以使用数据类型作为时间戳,并通过设置CURRENT_TIMESTAMP来设置表列默认值,并删除 NOW() 来自 select 和 created_date_time 来自插入,它会自动添加当前时间戳并记录插入

ALTER TABLE `table` CHANGE `created_date_time` `created_date_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; 

关于php - 插入有2个连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18328047/

相关文章:

mysql - 按列计算 SQL 出现次数

java - 无法使用类型编号的 where 条件从数据库中检索行

php - 改变照片的 iPhone 应用程序如何工作?

php - 分隔字符串中以空格分隔的单词

php - PHP 和 MYSQL 制作搜索页面时遇到的问题

python - 在Mac上安装Django+MySql

php - 在文本、PHP、MYSQL 之间替换较大正文中的文本

mysql - 将所有房间与所有其他房间进行比较(笛卡尔积)

mysql - 启动mysql时的事件调度

java - 如何基于 2 个键创建 JDBC upsert 查询