我有一个包含两列的表。两列是object_id和term_taxonomy_id。可以说表看起来像这样:

object_id | term_taxonomy_id
----------------------------
111       | 75
119       | 42
234       | 34
742       | 75
824       | 99
931       | 34
999       | 75


现在假设我知道object_id的值,并且我想检索所有具有相同term_taxonomy_id的对象ID

例如,假设我有对象ID 742,并且我想获取所有term_taxonomy_id为75的object_id记录,因此,我应该有类似

111、742、999

是否可以通过单个SQL查询实现?

我正在使用的DBMS是MySQL。

亲切的问候 :)

最佳答案

使用GROUP_CONCAT



SELECT GROUP_CONCAT(Object_ID) ObjectList
FROM tableName
WHERE term_taxonomy_id = 75



SQLFiddle Demo


更新1

SELECT GROUP_CONCAT(object_id) ObjectList
FROM   tableName
WHERE  term_taxonomy_id =
        (
          SELECT term_taxonomy_id
          FROM   tableName
          WHERE  object_id = 742
        )



SQLFiddle Demo


或使用JOIN

SELECT GROUP_CONCAT(a.object_id) ObjectList
FROM   tableName a
       INNER JOIN tableName b
       ON a.term_taxonomy_id = b.term_taxonomy_id AND
               b.object_id = 742



SQLFiddle Demo

10-05 20:12