3

我真的不确定如何命名这个问题......想象一下我们有一个看起来像这样的表格:

object | attribute | value
------------------------------
   7     country     Germany
   7     position    12
   7     points      12
   8     country     Germany
   8     position    10
   8     points      3

现在我想选择所有具有德国国家和位置 12 或 5 的对象标识符

我不知道如何编写此查询,可能吗?

4

2 回答 2

4

只要您需要额外的查询选项,就可以多次加入:

SELECT t1.object
FROM table t1
    INNER JOIN table t2 ON t1.object = t2.object
WHERE t1.attribute = 'country' AND t1.value = 'Germany'
    AND t2.attribute = 'position' AND t2.value IN (12,5)
于 2012-11-04T10:50:38.270 回答
3

您必须将表与自身连接:

SELECT *
FROM foo l
JOIN foo r ON l.object=r.object AND r.attribute='position'
WHERE l.attribute='country' AND l.value='Germany' AND r.value IN (5,12)
于 2012-11-04T10:49:43.353 回答