0

2 つの列で構成されるテーブルがあります。2 つの列は 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 です。

敬具 :)

4

2 に答える 2

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
于 2013-02-08T09:11:51.560 に答える
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
于 2013-02-08T09:05:15.743 に答える