我有一张包含数千条记录的表格。 表的结构是
object_id | term_taxonomy_id
我的查询是我希望所有object_ids都有term_taxonomy_id = 280和term_taxonomy_id = 306
所以我的输出应该是这样的
object_id | term_taxonomy_id | term_taxonomy_id
1 | 280 | 306
10 | 280 | 306
请为此目的撰写查询。
提前致谢
编辑:
SELECT *
FROM `wp_term_relationships` r
LEFT JOIN wp_term_relationships rr ON rr.term_taxonomy_id = r.term_taxonomy_id
LEFT JOIN wp_term_relationships rrr ON rr.term_taxonomy_id = r.term_taxonomy_id
WHERE rrr.term_taxonomy_id =280
AND rr.term_taxonomy_id =306
GROUP BY r.object_id
我上面写过查询。
答案 0 :(得分:1)
使用自联接是一个好主意,但你应该加入object_id,而不是term_taxonomy_id,并使用内连接而不是左连接:
SELECT DISTINCT r.object_id, r.term_taxonomy_id, rr.term_taxonomy_id
FROM `wp_term_relationships` r
INNER JOIN wp_term_relationships rr ON rr.object_id = r.object_id
WHERE r.term_taxonomy_id =280
AND rr.term_taxonomy_id =306
答案 1 :(得分:0)
SELECT * FROM TableName WHERE term_taxonomy_id = 280 AND term_taxonomy_id = 306
如你所说,你有一张桌子
答案 2 :(得分:0)
SELECT DISTINCT (
object_id
)
FROM wp_term_relationships
WHERE term_taxonomy_id =280
OR term_taxonomy_id =306
我找到了这样做的方法。