繁体   English   中英

如何从MySQL表中提取两个具有相同字段值而另一字段不同的行?

[英]How do I pull two rows from a MySQL table that have one field value in common and the other field different?

如果我的问题不太合理,我深表歉意。 让我详细解释这种情况。

我有一个名为“ elements”的MySQL表。 该表中有两个MEDIUMINT字段,一个称为“ user_id”,另一个称为“ element_id”。

我想撤出用户(一次检查一个人),该用户在表中具有element_id = 8的一行,在表中具有element_id = 9的一行。

我已经尝试了以下查询,但是它不起作用。 有任何想法吗?

SELECT * FROM elements WHERE user_id=2 AND (element_id=8 AND element_id=9)

Nanne的解决方案有效:

SELECT * FROM elements as e, elements as ee WHERE e.user_id=2 AND e.element_id=8 AND e.user_id=ee.user_id AND ee.element_id=9

这个

a)“ user_id”值为2且“ element_id”值为8的行,以及b)“ user_id”值为2且“ element_id”值为9的行。

转换为

(user_id = 2 AND element_id = 8) OR (user_id = 2 AND element_id = 9)

与(更接近您自己的尝试)相同

user_id=2 AND (element_id=8 OR element_id=9)

根据Aleks G的说法,他的建议应该可行。

SELECT * FROM elements WHERE user_id=2 AND (element_id=8 OR element_id=9)

应该检索user_id等于“ 2”且element_id等于“ 8”(如果存在)且element_id等于“ 9”(如果存在)的所有行,甚至认为它说“ OR”的工作方式类似于“如果结果中存在,则包括它”以及”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM