我有一个包含两列的表。两列是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