![](/img/trans.png)
[英]How do I use one row to pull multiple other rows from the same mySQL table
[英]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.