加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

mysql:行使AND样式查询而不是OR联接表查找记录

发布时间:2021-01-21 16:51:02 所属栏目:编程 来源:网络整理
导读:留意:行使MySQL 4.0,这意味着没有子查询(当前). 我有2张桌子: 一个“ user_details”表 “手艺”表,个中包括user_id和“ skill_id”,它们映射到在其他位置界说的一组预界说手艺. 当前查询应承打点员通过选择手艺来搜刮用户,而且查询以“或”方法事变,譬喻

留意:行使MySQL 4.0,这意味着没有子查询(当前).

我有2张桌子:

>一个“ user_details”表
>“手艺”表,个中包括user_id和“ skill_id”,它们映射到在其他位置界说的一组预界说手艺.

当前查询应承打点员通过选择手艺来搜刮用户,而且查询以“或”方法事变,譬喻:

LEFT JOIN skills 
ON (ud.user_id = skills.user_id)  
WHERE skills.skill_id in (51,52,53,54,55)
GROUP BY ud.user_id

这将返回太多记录,因此我但愿此搜刮字段以AND方法事变,其顶用户必需具有在搜刮中返回的全部选定手艺.

假如子查询是最佳选择,则有也许进级MySQL.

编辑:与分组依据,计数,拥有等有关.是否可以通过呼吁限定分组,要求返回几多匹配行? (譬喻,在此示例中为5).

edit2:测试:

HAVING COUNT( * ) > 5
最佳谜底 您不必要子查询或联接.

SELECT user_id
FROM skills
WHERE skill_id IN (51,55)
GROUP BY user_id
HAVING COUNT(*) = 5;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读