请根据我的需要在mysql中编写查询

时间:2016-02-05 05:54:46

标签: php mysql phpmyadmin

我有一张包含数千条记录的表格。 表的结构是

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

我上面写过查询。

3 个答案:

答案 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

我找到了这样做的方法。

相关问题