我有两个结构相同的表。Table1
保存经过审核的数据,table2
保存其余数据。
表格1
+--------+--------+---------------+--------+-------- ---+ | “身份证” | “名字” | “说明” | “类型” | “国家” | +--------+--------+---------------+--------+-------- ---+ | "5" | “一个” | "x" | "1" | “美国” | | "6" | "b" | "x" | "1" | “英国” | +--------+--------+---------------+--------+-------- ---+
表 2
+------+------------+------------+------+ --------+------------+----------+ | “身份证” | 组织ID | “名字” | “说明” | “类型” | “国家” | “状态” | +------+------------+------------+------+ --------+------------+----------+ | "1" | "5" | “标题1” | “说明1” | "1" | “美国” | "2" | | "2" | "6" | “标题2” | 《说明2》 | "1" | “英国” | "2" | | "3" | "6" | “标题2” | 《说明2》 | "1" | “英国” | "2" | +------+------------+------------+------+ --------+------------+----------+
我运行下面的 sql 以table 1
使用来自 的数据进行更新table 2
,它运行良好。它们实际上是用户为不同标题和描述建议的编辑。所以可能有不止一个具有相同的orgId
UPDATE table1 a
INNER JOIN table2 b
ON a.id = b.id
SET a.name = b.name,
a.description = b.description
WHERE a.id=1; // Problem lies here
我的问题是,我只得到table2
'sid
和在我的脚本中,type
然后country
我将其传递给包含上述 sql 的函数。
现在,我应该在WHERE
那里的子句中指定哪个表?应该是a ~ table1
还是b ~ table2
。现在它a
,但我没有a.id
在我的查询字符串中得到值,我不能使用orgId
,因为那里不止一个。此外,在查询字符串中获取它需要更多的代码和对几件事的更改。
如果我用会好吗
UPDATE table1 a
INNER JOIN table2 b
ON a.id = b.id
SET a.name = b.name,
a.description = b.description
WHERE b.id=3; // Can I specify id from b here
我试过这个并且它有效,但这是正确的做法吗?