Php 使用左连接将MySql插入到2个不同的表中
当在表B中为匹配记录创建新记录时,我尝试更新表A中的timestamp列。它是一个记录链接的关系数据库。在表B中创建新记录时,它会引用表a中已建立的记录。如果不链接到a中的记录,则无法在B中创建新记录 表A:id、名称、日期、地址、时间戳 表B:id、a_id、代理、注释 其中b.a_id=a.id 我已经通过这些论坛,似乎得到了相互矛盾的答案。我将使用什么样的sql查询来实现这一点?我需要使用某种类型的联接吗?这就是我所处的位置:Php 使用左连接将MySql插入到2个不同的表中,php,mysql,foreign-keys,relational-database,left-join,Php,Mysql,Foreign Keys,Relational Database,Left Join,当在表B中为匹配记录创建新记录时,我尝试更新表A中的timestamp列。它是一个记录链接的关系数据库。在表B中创建新记录时,它会引用表a中已建立的记录。如果不链接到a中的记录,则无法在B中创建新记录 表A:id、名称、日期、地址、时间戳 表B:id、a_id、代理、注释 其中b.a_id=a.id 我已经通过这些论坛,似乎得到了相互矛盾的答案。我将使用什么样的sql查询来实现这一点?我需要使用某种类型的联接吗?这就是我所处的位置: INSERT INTO b ( a_id, agent, co
INSERT INTO b ( a_id, agent, comment)
VALUES ( 1008, 'TEST', 'Hello world!');
INSERT INTO a (timestamp)
VALUES ((SELECT id FROM b WHERE b.a_id = a.id), current_timestamp);
很难理解你想要完成什么。您是否正在尝试更新
a
中具有\u id 1008的行中的时间戳
INSERT INTO b (a_id, agent, comment)
VALUES (1008, 'TEST', 'Hello world!');
UPDATE a SET timestamp = CURRENT_TIMESTAMP WHERE id = 1008;
我会完全按照上面的说明去做。插入b
,然后更新a
如果您希望它自动发生,可以使用触发器:
CREATE TRIGGER b_ins AFTER INSERT ON b
FOR EACH ROW
UPDATE a SET timestamp = CURRENT_TIMESTAMP WHERE id = NEW.a_id;
很难理解你想要完成什么。您是否正在尝试更新
a
中具有\u id 1008的行中的时间戳
INSERT INTO b (a_id, agent, comment)
VALUES (1008, 'TEST', 'Hello world!');
UPDATE a SET timestamp = CURRENT_TIMESTAMP WHERE id = 1008;
我会完全按照上面的说明去做。插入b
,然后更新a
如果您希望它自动发生,可以使用触发器:
CREATE TRIGGER b_ins AFTER INSERT ON b
FOR EACH ROW
UPDATE a SET timestamp = CURRENT_TIMESTAMP WHERE id = NEW.a_id;
您不能使用
联接
在一个查询中更新多个表。如果我理解正确的话,你可以查看触发器,当然是@ramraidercan@cam308请看,您不是指一个查询,而是指一个更新命令。您不能在一个查询中使用联接来更新多个表。如果我理解正确的话,你可以查看触发器,当然是@ramraidercan@cam308看,你不是指一个查询,你是指一个更新命令。是的,没错!在B中创建一个新记录,同时更新a中与该id对应的时间戳。完美!谢谢你是的,没错!在B中创建一个新记录,同时更新a中与该id对应的时间戳。完美!非常感谢。