Mysql 如何基于多行获取列值?
我想检查uid同时等于Mysql 如何基于多行获取列值?,mysql,Mysql,我想检查uid同时等于1和2的行,如果是,则返回cid。在本例中,只有2个,但如果您知道返回CID的方法超过2个,那也太好了 当我知道两个uid值时,如何最容易地获得cid=5的值?(1,2)。 对于伪sql,我的想法类似于选择cid,其中uid=1或uid=2 这将返回uid为1或2的所有行。我怎样才能限制为或语句以及和? 选择uid=1和uid=2的cid(但多行) 有什么想法吗?根据给定的细节,试试这个。假设您有一个名为docs的表 SELECT d1.cid FROM docs AS d
1
和2
的行,如果是,则返回cid。在本例中,只有2个,但如果您知道返回CID的方法超过2个,那也太好了
当我知道两个uid
值时,如何最容易地获得cid=5的值?(1,2)。对于伪sql,我的想法类似于
选择cid,其中uid=1或uid=2
这将返回uid为1或2的所有行。我怎样才能限制为
或语句以及和?
选择uid=1和uid=2的cid(但多行)
有什么想法吗?根据给定的细节,试试这个。假设您有一个名为docs
的表
SELECT d1.cid
FROM docs AS d1
LEFT JOIN docs AS d2 ON d1.cid = d2.cid
WHERE d1.uid = 1
AND d2.uid = 2
据我所知,您正在寻找一种将条件应用于多行的方法,这种方法是通过agruption函数实现的。试试这个:
Select CID
from YourTable where uid IN (1,2)
group by cid
having count(uid) = 2
在本例中,我使用in而不是two OR,并按CID对行进行分组,然后将结果限制为那些UID等于1和2的行。
有许多棘手的方法可以达到相同的效果,例如,您还可以执行以下操作:
Select CID
from YourTable where uid IN (1,2)
group by cid
having sum(uid) = 3
在本例中,我对UID列求和,如果UID为1和2,则两者之和将产生3,我假设不能有3行UID为1且CID相同您试图实现的具体目标不太清楚。我建议您扩展提供的示例数据,并包括所需结果数据的示例。我只是想找出一个select语句,如果我知道两个UID值,它可以得到cid=5的值。1和2。在上述示例中,只有cid
=5同时具有1和2,其他cid
是否可能同时具有1和2?否,它是唯一的
Select CID
from YourTable where uid IN (1,2)
group by cid
having sum(uid) = 3