2013-02-08 31 views
0

我有一個由兩列組成的表。這兩列是object_id和term_taxonomy_id。比方說表看起來像這樣:SQL |如何根據記錄ID和另一列獲取所有記錄ID? (可能是簡單的問題:))

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

現在,讓我們說,我知道OBJECT_ID的價值,我喜歡以檢索所有的對象ID的,具有相同的term_taxonomy_id

在例如,讓我們說我有對象ID 742,我喜歡得到所有OBJECT_ID記錄了term_taxonomy_id是75這樣的結果,我應該有類似

111,742,999

使用單個SQL查詢可以實現嗎?

我正在使用的DBMS是MySQL。

親切的問候:)

回答

1

使用GROUP_CONCAT

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

(更新版)

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 
+0

我唯一的信息是object_id,而不是term_taxonomy_id。這太簡單:)無論如何感謝您的迴應:) –

+1

好的。我會更新。 –

+0

謝謝:)你是最好的;) –

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