Python SQL完全外部联接或内部联接
我想这是一个简单的问题。 我得到新数据,并将其存储到临时表“Units\u temp”中。我想把这个和表“Units”连接起来。它们有相同的列,键是“Client_id” 我想做一些类似于bellow的事情(我想我也可以用insert进行左连接?) 我有很多列,所以如果没有必要,我宁愿不列出代码中的所有列 我使用Python和MS access数据库Python SQL完全外部联接或内部联接,python,sql,join,Python,Sql,Join,我想这是一个简单的问题。 我得到新数据,并将其存储到临时表“Units\u temp”中。我想把这个和表“Units”连接起来。它们有相同的列,键是“Client_id” 我想做一些类似于bellow的事情(我想我也可以用insert进行左连接?) 我有很多列,所以如果没有必要,我宁愿不列出代码中的所有列 我使用Python和MS access数据库 strSQL = "SELECT * FROM Units_temp FULL OUTER JOIN Units ON Units_te
strSQL = "SELECT *
FROM Units_temp
FULL OUTER JOIN Units ON Units_temp.Client_id=Units.Client_id"
cur = conn.cursor()
cur.execute(strSQL)
表单位温度
+----------+------+-------+
| Client_id| Name | Units |
+----------+------+-------+
| 1 | A | 12 |
| 2 | B | 2 |
| 4 | D | 109 |
| 5 | E | 13 |
+----------+------+-------+
表单位
+----------+------+-------+
| Client_id| Name | Units |
+----------+------+-------+
| 1 | A | 12 |
| 2 | B | 2 |
| 3 | C | 4 |
+----------+------+-------+
我想要的结果
+----------+------+-------+
| Client_id| Name | Units |
+----------+------+-------+
| 1 | A | 12 |
| 2 | B | 2 |
| 3 | C | 4 |
| 4 | D | 109 |
| 5 | E | 13 |
+----------+------+-------+
MS Access不支持
完全连接
如果我理解正确的话,您有一些排序查询。如果重复的行实际上是相同的,您可以使用UNION
:
SELECT ut.*
FROM Units_Temp as ut
UNION
SELECT u.*
FROM Units as u;
如果您希望一个表中的行“覆盖”另一个表中的行,则可以使用UNION ALL
和NOT EXISTS
:
SELECT ut.*
FROM Units_Temp as ut
UNION ALL
SELECT u.*
FROM Units u
WHERE NOT EXISTS (SELECT 1
FROM Units_Temp as ut
WHERE ut.Client_id = u.Client_id
);
谢谢戈登!很好。但是,数据库没有更新。我可以用python打印结果并查看它是否合并/联接,但我的数据库没有联接。@NewDev。如果要更改表,则需要插入行。那将是一个不同的问题。好的,很抱歉不清楚。我想用“Units\u temp”中的新信息更新表“Units”。