作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是那些日子之一,我就是想不通。
我有以下查询:
SELECT * FROM wp_posts
JOIN wp_term_relationships ON wp_term_relationships.object_id = wp_posts.ID
WHERE term_taxonomy_id = 80
显然,这会选择类别 ID 80 中的所有帖子。我需要做的是选择类别 80 但不在类别 109 中的所有帖子。
我已经试过了,但它只会从类别 80 中选择相同的帖子。
SELECT * FROM wp_posts
JOIN wp_term_relationships ON wp_term_relationships.object_id = wp_posts.ID
WHERE term_taxonomy_id = 80
AND term_taxonomy_id = 109
这是表结构:
wp_posts
| ID |
------------
| 1 |
| 2 |
wp_term_relationships
| object_id | term_taxonomy_id |
|-----------|------------------|
| 1 | 80 |
| 2 | 80 |
| 1 | 109 |
object_id 匹配 post_id
查询应该只返回 ID 2,因为 ID 1 在 80 和 109 中。
我知道我已经这样做了一百万次了,但我就是一辈子都无法让它发挥作用。有帮助吗?
最佳答案
你可以这样写:
SELECT *
FROM wp_posts
JOIN wp_term_relationships
ON wp_term_relationships.object_id = wp_posts.ID
WHERE term_taxonomy_id = 80
AND wp_posts.id NOT IN
( SELECT object_id
FROM wp_term_relationships
WHERE term_taxonomy_id = 109
)
;
(参见 § 13.2.10.3 "Subqueries with ANY
, IN
, or SOME
" in the MySQL 5.6 Reference Manual 。)
关于mysql - Where 子句等于一个字段,不等于另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396112/
我是一名优秀的程序员,十分优秀!