mysql - 将查询结果插入相同的 table 与连接
mysql - insert results of query into same table with joins
我一直使用这个网站来寻找我的问题的答案,但这是我第一次提出这样的问题。
我有两个 table,我想查询两个 table,并将结果插入到 table 1 上的两列中。像这样:
SELECT a.column1 from table1 a LEFT Join ( SELECT 'column1' from 'table2' ) AS a ON where a.column1 like '%column1.table2%';
基本上然后将结果插入 table 1
的 column5 和 column6
我知道这是不正确的,因为它不起作用并且不会更新任何东西。为了测试,我在 运行 select 语句之前验证 运行 更新命令。另一种表达我需要的方式是:
如果 table1 中的第 1 列类似于 table2 中的第 1 列,则使用 table2 中第 2 列的相应条目更新 table1 中的第 5 列,并更新第 6 列table1 与来自 table1 的 column7 以及来自 table2;
的 column3 中的相应条目
我知道这不是最好的解释,但这是我能解释我想要的东西的最好方式。如果需要更多信息,请提出问题,我会尽力解释。
感谢您的任何意见。
在 MySQL 中,您可以使用 table 列表中的联接在单个更新语句中执行多个 table 更新:
update t1 inner join t2 on t1.column1 like concat('%',t2.column1, '%')
set t1.column5=t2.column2, t1.column6=t2.column7
但是,使用 like 不一定是最好的主意,因为来自 t2 的多于 1 条记录可能与 t1 中的相同记录匹配,因此单个 t1 记录可能在单个 运行 期间更新多次。
您关于哪些 t1 字段应该由 t2 中的哪个字段更新的描述不准确,无法真正说明那里的逻辑。
我一直使用这个网站来寻找我的问题的答案,但这是我第一次提出这样的问题。
我有两个 table,我想查询两个 table,并将结果插入到 table 1 上的两列中。像这样:
SELECT a.column1 from table1 a LEFT Join ( SELECT 'column1' from 'table2' ) AS a ON where a.column1 like '%column1.table2%';
基本上然后将结果插入 table 1
的 column5 和 column6我知道这是不正确的,因为它不起作用并且不会更新任何东西。为了测试,我在 运行 select 语句之前验证 运行 更新命令。另一种表达我需要的方式是:
如果 table1 中的第 1 列类似于 table2 中的第 1 列,则使用 table2 中第 2 列的相应条目更新 table1 中的第 5 列,并更新第 6 列table1 与来自 table1 的 column7 以及来自 table2;
的 column3 中的相应条目我知道这不是最好的解释,但这是我能解释我想要的东西的最好方式。如果需要更多信息,请提出问题,我会尽力解释。
感谢您的任何意见。
在 MySQL 中,您可以使用 table 列表中的联接在单个更新语句中执行多个 table 更新:
update t1 inner join t2 on t1.column1 like concat('%',t2.column1, '%')
set t1.column5=t2.column2, t1.column6=t2.column7
但是,使用 like 不一定是最好的主意,因为来自 t2 的多于 1 条记录可能与 t1 中的相同记录匹配,因此单个 t1 记录可能在单个 运行 期间更新多次。
您关于哪些 t1 字段应该由 t2 中的哪个字段更新的描述不准确,无法真正说明那里的逻辑。