php - 选择连接表具有更多列出值的位置
问题描述
我有 3 张桌子:
A: id, name
B: id, name
C: id_A, id_B
关系是A有很多B。
有另一个表与关系有很多B。
我想做的是找到我列出的 B.id 最多的 A。就像是
SELECT * FROM A JOIN C ON A.id=C.id_A JOIN B ON B.id=C.id_B WHERE B.ID HAVE_MOST(5,22,39,110,235);
它将返回具有所有值的第一个 A,如果未找到,它将返回具有这些值中的 4 个组合的第一个 A,依此类推。
这在 mysql 中可能吗?
解决方案
这似乎可以完成这项工作:
SELECT *, count(A.id) as number FROM A JOIN C ON A.id=C.id_A JOIN B ON B.id=C.id_B WHERE B.ID IN (5,22,39,110,235) GROUP BY A.id ORDER BY number DESC LIMIT 1
推荐阅读
- c++ - 在处理程序中排队请求时从多个线程或一个线程调用 boost asio io_service.run
- firebase - Google Cloud Platform - 一款测试应用程序 - 每月 90 美元的费用 - 为什么?
- loopbackjs - 上传大于 10MB 的文件
- asp.net - 授权角色控制器属性在 ASP Core 2.2 中不起作用
- angular - Spring Boot 从 Angular 请求获取本地存储(控制器中的错误 - 500)
- javascript - Object.hasOwnProperty 与 Object.prototype.hasOwnProperty 的实际区别
- ruby - 红宝石双管作业
- mqtt - paho 客户端如何知道网桥连接的状态?
- python - python中回调或监听器的实现
- webpack - Webpack 4 - 从 ExtractTextPlugin 设置 MiniCssExtractPlugin