作者TonyQ (骨头)
看板Database
标题[SQL ] select 问题
时间Sat Jul 5 06:58:04 2008
我的user是一个table , 纪录使用者的上站纪录.
主要的schema如下
sid int(11) auto_increment
userId varchar(20)
fromaddress varchar(60)
目前总资料笔数 62,835
────────────────────────────────
现在碰到的瓶颈是当我想找出与特定使用者(以下代称xxx)时来源相同的使用者时,
我采用如底下所述的 sql 疑似会碰上搜寻瓶颈.
(电脑会没有回应 , 目前尚未找出确实原因,
执行环境是phpmyadmin for mysql , OS是 winxp .)
SELECT u1.* FROM `user` u1 where u1.fromaddress in(
select distinct u2.fromaddress from user u2 where u2.userid='xxx'
)
────────────────────────────────
而我如果是作两段式查询
先作
select distinct u2.fromaddress from user u2 where u2.userid='xxx'
假设查到 'addr1' , 'addr2'
再把结果的字串手动写到
SELECT u1.* FROM `user` u1 where u1.fromaddress in(
'addr1' , 'addr2'
)
这样就还蛮顺利的,想问问看我原本的写法 ,
是不是有造成笛卡尔乘绩的疑虑,还是有什麽状况.
因为in这个keyword不是个很好google的词 , 所以上来请教~~ --;;;
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.27.68
1F:推 rosemary:第一个查询的第二个user要不要加上引号试试看? 07/05 10:41