MYSQL创建具有唯一值的表
问题描述:
我想从另一个表更新我的表。我想忽略重复项,并删除该表中的所有匹配项。MYSQL创建具有唯一值的表
Source Table Table 1 Table 2
Customer | Address Customer | Address Customer | Address
__________________ __________________ __________________
Mike 123 Main Mike 123 Main Bob 999 1st
Steve 456 Maple Steve 456 Maple
John 789 Elm John 789 Elm
Bob 999 1st
例如,表2只“源表”进行比较,见表1。之后我使用MYSQL/PHP有独特的条目。
任何方向非常感谢。
答
MySQL的32年5月5日架构设置:
CREATE TABLE Source
(`Customer` varchar(5), `Address` varchar(9))
;
INSERT INTO Source
(`Customer`, `Address`)
VALUES
('Mike', '123 Main'),
('Steve', '456 Maple'),
('John', '789 Elm'),
('Bob', '999 1st'),
('Bob', '999 1st')
;
CREATE TABLE Table1
(`Customer` varchar(5), `Address` varchar(9))
;
INSERT INTO Table1
(`Customer`, `Address`)
VALUES
('Mike', '123 Main'),
('Steve', '456 Maple'),
('John', '789 Elm')
;
CREATE TABLE Table2
(`Customer` varchar(5), `Address` varchar(9))
;
DELETE FROM Table2;
INSERT INTO Table2
(`Customer`, `Address`)
SELECT DISTINCT Customer, Address
FROM Source
WHERE NOT EXISTS (SELECT 1 FROM Table1 WHERE Source.Customer = Table1.Customer)
查询1:
SELECT *
FROM Table2
| CUSTOMER | ADDRESS |
|----------|---------|
| Bob | 999 1st |
+0
非常感谢。这非常有意义,正是我所期待的。 – cableguy 2015-02-09 22:18:14
请问哪张表具有唯一的值(s)? – ethrbunny 2015-02-09 21:56:11
如果表2为空,则无法更新。更新不能产生新记录。你必须插入bob记录。 – 2015-02-09 21:56:54
@ethrbunny是的,表2应具有唯一值。表2最终是与票务系统一起使用的表(为了避免重复票) – cableguy 2015-02-09 22:02:43