gpt4 book ai didi

MySQL:获取表之间的重复值列表

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:04 25 4
gpt4 key购买 nike

我有两个包含地址数据的表。这是部分表示:

表1(主要数据):

id  address        city      state
1 1234 main st seattle wa
2 2345 oak st portland or
3 3456 maple st boise id

和表2(二手数据):

id  address         city         state    to_insert
1 4567 first st sacramento ca 1
2 5678 second st phoenix az 0
3 2345 oak st portland or 1

我需要先从表 2 中获取表 1 中已存在的标记为 to_insert(位)的值列表,这样我就可以手动编辑数据并插入它们(这样它们就不会重复)。如何从表 2(辅助数据)中获取已存在于表 1(主要数据)中的重复项列表?

最佳答案

您可以使用 EXISTS获取 table2 上的重复行:

SELECT * FROM table2 t2 WHERE EXISTS (
SELECT * FROM table1
WHERE t2.address = table1.address
AND t2.city = table1.city
AND t2.state = table1.state
);

您可以在这里找到一个工作示例: http://sqlfiddle.com/#!9/110b9a/1/0

要将 table2 中的数据INSERTtable1,您可以使用以下命令:

INSERT INTO table1 (address, city, state) 
SELECT address, city, state FROM table2
WHERE NOT id IN (
SELECT t2.id FROM table2 t2 WHERE EXISTS (
SELECT * FROM table1
WHERE t2.address = table1.address
AND t2.city = table1.city
AND t2.state = table1.state
)
);

关于MySQL:获取表之间的重复值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41640532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com