mysql储存程序中选择语句有_MYSQL语句从n:n表中快速选择组

Note the size of this set can get pretty large, so I don’t want to join the table to itself n times.

无论你怎么动摇它,每种语言都会有联系.您正在寻找一个值(程序员),其中每个另一个值(语言)至少存在一行.这意味着您需要考虑同一个表的N个不同视角.

在大多数情况下,您可能最有效率地进行连接.如果结果集足够密集(实际上,大多数程序员都会说python和c),你可以采用一些聪明之处.首先查询析取,但唯一,然后由程序员对结果关系进行分组,并筛选出语言太少的那些…

SELECT programmer

FROM ( SELECT DISTINCT programmer, language

FROM speaks_table

WHERE language in ('C++', 'python') ) AS disjunction

GROUP BY disjunction.programmer

HAVING count(disjunction.language) = 2

但是,这比普通的ol’多路连接更好,取决于所涉及的确切数据.这至少具有不需要生成查询的优点,这取决于所讨论的语言的数量.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值