0

如果我的问题不太合理,我深表歉意。让我详细解释一下这个场景。

我有一个名为“元素”的 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)
4

3 回答 3

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
于 2012-10-25T17:06:16.940 回答
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)
于 2012-10-25T15:29:51.393 回答
0

根据 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”的工作方式类似于“如果结果中存在则包含它”也一样”。

于 2012-10-25T15:52:04.550 回答