gpt4 book ai didi

Mysql Distinct Join 记录不匹配或根本没有连接数据

转载 作者:行者123 更新时间:2023-11-29 12:34:54 24 4
gpt4 key购买 nike

我有两个表:作者和帖子。作者可以有多个帖子 (1:N)。

Authors:
- id
- name

Posts:
- id
- authors_id
- post_type

我需要检索其 post_type 不属于某种类型的所有作者,比如说“Type1”,从逻辑上讲,这需要包含根本没有帖子的作者。

我目前正在尝试这个:

Select DISTINCT a.*
from authors a
LEFT JOIN posts p ON p.authors_id = a.id
WHERE
p.post_type <> 'TYPE1'
OR p.authors_id IS NULL

这将正确返回所有具有以下特征的作者:

- no posts at all
- or have only posts not of TYPE1
- and will not show authors having only posts of TYPE1

但是:它还会返回那些具有 TYPE1 以及任何其他类型帖子的作者。

这可以在查询中实现吗?

最佳答案

我认为这应该有效:

Select DISTINCT a.*
from authors a
LEFT JOIN posts p ON p.authors_id = a.id
WHERE
a.id NOT IN (SELECT p.authors_id from authors a INNER JOIN posts p ON p.authors_id = a.id WHERE p.post_type = 'TYPE1')

关于Mysql Distinct Join 记录不匹配或根本没有连接数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com