如果我的问题没有意义,我道歉。让我详细解释一下这个场景。
我有一个名为“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)
答案 0 :(得分:1)
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
答案 1 :(得分:0)
这个
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)
答案 2 :(得分:0)
根据Aleks G的说法,他的建议应该有效。
SELECT * FROM elements WHERE user_id=2 AND (element_id=8 OR element_id=9)
应检索user_id等于“2”的所有行,其中element_id等于“8”(如果存在)AND element_id等于“9”(如果存在),甚至认为“OR”的工作方式如“如果存在则包括它”在结果中也是“。