mysql 求一查询 表达式/思路

1011 2012-11-20 05:24:32
新手求助;
存在一个记录实体a和实体b的关系表(3 columns):‘id,a,b’. 如何查询至少具有b=x,b=y,b=z.......的a。
(除了自我join 的方法,由于关系表太大,多次连接数据库会挂)
...全文
279 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
javamy007 2013-02-06
  • 打赏
  • 举报
回复
好帖子啊,学习啦!!
ACMAIN_CHM 2012-11-21
  • 打赏
  • 举报
回复
引用 5 楼 usherusher20 的回复:
引用 3 楼 ACMAIN_CHM 的回复:select from 关系表 t where b=x and exists (select 1 from 关系表 where a=t.a and b=y) and exists (select 1 from 关系表 where a=t.a and b=z) 这个效率比起#2会更高吗?(假设会有很多Item,不止……
测试一下不就知道了?
1011 2012-11-21
  • 打赏
  • 举报
回复
引用 3 楼 ACMAIN_CHM 的回复:
select from 关系表 t where b=x and exists (select 1 from 关系表 where a=t.a and b=y) and exists (select 1 from 关系表 where a=t.a and b=z)
这个效率比起#2会更高吗?(假设会有很多Item,不止x,y,z) Thanks in advance
1011 2012-11-21
  • 打赏
  • 举报
回复
引用 2 楼 rucypli 的回复:
SQL code?12345select afrom tbwhere b in ('x','y','z')group by a having count(distinct b)=3
我也是这么想的但是没解决b重复问题,原来distinct 还可以用这个位置,学习了。
ACMAIN_CHM 2012-11-20
  • 打赏
  • 举报
回复
select from 关系表 t where b=x and exists (select 1 from 关系表 where a=t.a and b=y) and exists (select 1 from 关系表 where a=t.a and b=z)
rucypli 2012-11-20
  • 打赏
  • 举报
回复
select a
from tb
where b in ('x','y','z')
group by a 
having count(distinct b)=3
1011 2012-11-20
  • 打赏
  • 举报
回复
在线等高手。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧