请记住,我对 MySQL 很陌生。
当我尝试选择一组结果时,我被卡住了。
select A.userNum from tableOne A, tableTwo B where A.userNum!=B.userNum;
(表 A 包含用户的 userNum 和电话号码。表 B 包含用户的地址簿。)
ResultSet 包含多组相似的结果。每个结果都省略了我在 where 子句中指定的一个 userNum。(看这个问题的结尾)
如何获得仅包含一个结果且满足“where A.userNum!=B.userNum”子句的 ResultSet?
这是一个我遇到麻烦的具体案例。
假设我有两个表,用户和地址簿。
表“地址簿”基本上是一个地址簿。表“用户”是包含用户电话号码的表。
我创建了表格。为简单起见,“users”表中的“userNum”和“phone”号码相同。
create table users (
userNum int,
phone char(11)
);
insert into users values (1,'1');
insert into users values (2,'2');
insert into users values (3,'3');
insert into users values (4,'4');
insert into users values (5,'5');
insert into users values (6,'6');
insert into users values (7,'7');
insert into users values (8,'8');
insert into users values (9,'9');
insert into users values (10,'10');
create table addressbook (
userNum int,
phone char(11)
);
insert into addressbook values(1,'2');
insert into addressbook values(1,'3');
insert into addressbook values(2,'3');
insert into addressbook values(3,'4');
insert into addressbook values(5,'7');
insert into addressbook values(5,'8');
insert into addressbook values(6,'7');
insert into addressbook values(7,'8');
insert into addressbook values(7,'9');
insert into addressbook values(9,'10');
接下来,我将找出我朋友的朋友的'userNum'。假设我是 userNum 1。
首先,我找到了我朋友的“userNum”。
select A.userNum from users A, addressbook B where B.userNum=1 and B.phone=A.phone;
然后使用这个查询,我找到了我朋友的朋友的'userNum'。
select A.userNum from users A, addressbook B, (select A.userNum from users A, addressbook B where B.userNum=1 and B.phone=A.phone) C
where C.userNum=B.userNum and A.phone=B.phone;
结果是 3,4。(奇怪,当我使用子查询时,这里的 ResultSet 不会重复。)
问题从这里开始。
使用上面的 select 语句作为子查询 B,我试图获取不是我朋友的朋友的人的 'userNum'。
select A.userNum from users A,
(select A.userNum from users A, addressbook B, (select A.userNum from users A, addressbook B where B.userNum=1 and B.phone=A.phone) C where C.userNum=B.userNum and A.phone=B.phone) B
where A.userNum!=B.userNum;
结果
userNum
1
2
4
5
6
7
8
9
10
1
2
3
5
6
7
8
9
10
从结果可以看出,有两组结果。第一个结果省略了 userNum 3,第二个结果省略了 userNum 4。
如何获得一组省略 userNum 3,4 的 userNum?