我有一个MySQL连接表USER_CONNECTIONS,它用以下列MapUSERS表:USER_FROM和USER_TO,这两个列都是USERS表中的外键。USER_FROM和USER_TO都是主键,因此像(1,2)和(1,2)这样的模式永远不能重复。
USER_CONNECTIONS表。
create table user_connections (
user_from int,
user_to int,
primary key(user_from, user_to)
);
insert into user_connections(user_from, user_to) values(1, 2);
insert into user_connections(user_from, user_to) values(2, 1);
insert into user_connections(user_from, user_to) values(67, 1);
insert into user_connections(user_from, user_to) values(68, 1);
insert into user_connections(user_from, user_to) values(69, 1);
insert into user_connections(user_from, user_to) values(70, 1);
插入后是什么样子
查询#1
select * from user_connections;
User_From|User_To
1|2
2|1
67|1
68|1
69|1
70|1
View on DB Fiddle
我的问题是,如何使用一个基于ID 2的查询删除模式(1,2)和(2,1)。另外,如果我假设有另一个模式,如(67,2)和(2,67),我将如何删除这些模式?
提前谢谢您。
2条答案
按热度按时间i34xakig1#
我找到解决方案了。我只需要使用WHERE IN,如下所示:
ngynwnxp2#
假设您有一个USER表,其ID链接到您在这里描述的两列。这样的请求可以完成这项工作: