avatar
s*a
1
包,
求助一个Mysql查询问题:
表A有两列,分别是两个ID(ID1,ID2); 表B有两列,分别是每个ID对应的name。
现在要给出任意两个名字,查询这两个人的组合是否存在于表B中。
这已经实现了:(谢谢之前那谁和谁了)
select tmp1.name AS name1,tmp2.name as name2
from
(select ID,name from B where name="zhangsan") tmp1,
(select ID,name from B where name="lisi") tmp2,
A
where
A.ID1=tmp1.ID and A.ID2=tmp2.ID
group by name1,name2;
现在目的升级了:不是查询特定的某两个人,而是给出一个人名列表(包含n个名字)
,要求从表A中查询出 “双方都存在于人名列表中” 的记录。
请问怎样做会比较快呢?
我试过把两个临时表中的=号换做 in(...), 但是基本查不动~太慢了,才8个名字的列
表,就基本上看不到查得完的希望了。
avatar
s*g
2
WHAT'S THE PRIMARY KEY OF THE TABLES?

【在 s****a 的大作中提到】
: 包,
: 求助一个Mysql查询问题:
: 表A有两列,分别是两个ID(ID1,ID2); 表B有两列,分别是每个ID对应的name。
: 现在要给出任意两个名字,查询这两个人的组合是否存在于表B中。
: 这已经实现了:(谢谢之前那谁和谁了)
: select tmp1.name AS name1,tmp2.name as name2
: from
: (select ID,name from B where name="zhangsan") tmp1,
: (select ID,name from B where name="lisi") tmp2,
: A

avatar
x*3
3

DESC A;
DESC B

【在 s****a 的大作中提到】
: 包,
: 求助一个Mysql查询问题:
: 表A有两列,分别是两个ID(ID1,ID2); 表B有两列,分别是每个ID对应的name。
: 现在要给出任意两个名字,查询这两个人的组合是否存在于表B中。
: 这已经实现了:(谢谢之前那谁和谁了)
: select tmp1.name AS name1,tmp2.name as name2
: from
: (select ID,name from B where name="zhangsan") tmp1,
: (select ID,name from B where name="lisi") tmp2,
: A

avatar
v*a
4
恩 骑姐是专家

【在 x*******3 的大作中提到】
:
: DESC A;
: DESC B

avatar
s*a
5

create table B (ID char(8),name char(8),nickname char(8),age int(2),primary
key (name));
create table A (ID1 char(8),ID2 char(8),primary key (ID1,ID2));

【在 x*******3 的大作中提到】
:
: DESC A;
: DESC B

avatar
z*i
6
顶!

【在 s****a 的大作中提到】
: 包,
: 求助一个Mysql查询问题:
: 表A有两列,分别是两个ID(ID1,ID2); 表B有两列,分别是每个ID对应的name。
: 现在要给出任意两个名字,查询这两个人的组合是否存在于表B中。
: 这已经实现了:(谢谢之前那谁和谁了)
: select tmp1.name AS name1,tmp2.name as name2
: from
: (select ID,name from B where name="zhangsan") tmp1,
: (select ID,name from B where name="lisi") tmp2,
: A

avatar
d*h
7
If you are searching by name, create index for name in table A, and name in
table B.

【在 s****a 的大作中提到】
: 包,
: 求助一个Mysql查询问题:
: 表A有两列,分别是两个ID(ID1,ID2); 表B有两列,分别是每个ID对应的name。
: 现在要给出任意两个名字,查询这两个人的组合是否存在于表B中。
: 这已经实现了:(谢谢之前那谁和谁了)
: select tmp1.name AS name1,tmp2.name as name2
: from
: (select ID,name from B where name="zhangsan") tmp1,
: (select ID,name from B where name="lisi") tmp2,
: A

avatar
x*3
8
介个最好的是sp,不过就三个包子要死好多脑细胞
30个考虑下:)
avatar
h*8
9
我说 有包子都没人来re呢
avatar
s*a
10
啥sp?
我基本没解了,分段查询了用perl处理
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。