首页 > 解决方案 > 选择连接表具有更多列出值的位置

问题描述

我有 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 中可能吗?

标签: phpmysql

解决方案


这似乎可以完成这项工作:

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

推荐阅读