我试图只选择所有三个组(1、2、3)中的对象。
使用“WHERE gid IN (1,2,3)”选择我得到一个 OR 选择。我需要的是一个 AND 选择。
OBJECT_TABLE AS o
id | field1 | field2 | ...
VALUES
1, a, b
2, c, d
3, e, f
...
GROUP_XREF_TABLE AS gx
oid | gid
VALUES
1, 1
1, 2
1, 3
2, 2
3, 1
3, 2
...
SELECT DISTINCT o.id, gx.gid FROM `OBJECT_TABLE` AS o
LEFT JOIN `GROUP_XREF_TABLE` AS gx ON o.id = gx.oid
WHERE gx.gid IN (1,2,3)
这将输出所有行。我需要一个 WHERE 子句,它只输出对象 id 为 1 的行,因为只有该对象在所有三个组中。
它是较大选择的一部分,因此仅应在 where 语句中完成这一点很重要(如果需要,子选择应该没问题)。