SQL |如何根据记录ID和另一列获取所有记录ID? (可能是简单的问题:))

时间:2013-02-08 09:04:01

标签: mysql sql

我有一个由两列组成的表。这两列是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。

亲切的问候:)

2 个答案:

答案 0 :(得分:1)

使用GROUP_CONCAT

<击>

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

更新1

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

或使用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

答案 1 :(得分:1)

使用以下查询:

SELECT DISTINCT t2.object_id FROM table as t1, table as t2
WHERE t1.object_id = XX
AND t2.term_taxonomy_id = t1.term_taxonomy_id