gpt4 book ai didi

mysql - 如何进行 SQL 查询,其中 WHERE 中将出现 2 次 "AND"

转载 作者:行者123 更新时间:2023-12-02 18:12:30 24 4
gpt4 key购买 nike

请帮我处理一个看似简单的sql查询,但它不起作用,我已经通过JOIN和WHERE的变体尝试了所有选项

Таблица 用户

<表类=“s-表”><标题>id状态帖子ID <正文>12345新5555523456准备好了5555534567完成77777

如果postId的状态=新并且状态=就绪,我需要输出postId。应输出 postId = 55555我的选择:

SELECT
postId
FROM User
WHERE postId IN (55555, 77777)
AND (status = new AND status = ready)
GROUP BY postId

但是由于矛盾(status = new AND status = ready)它不起作用,它只起作用(status = new OR status = Ready),但是这样的条件不适合我,它需要严格两者新的并且准备好了。MySql。

我还有带有嵌套请求的 SQL:

SELECT postId FROM User WHERE status = ready AND postId IN 
(SELECT postId FROM User WHERE status = new )

它有效,但如果我需要处理超过 2 个状态,请求就会变得更加复杂

最佳答案

要使第一种方法发挥作用,您需要在 HAVING 子句中断言状态要求:

SELECT postId
FROM User
WHERE postId IN (55555, 77777)
GROUP BY postId
HAVING SUM(status = 'new') > 0 AND SUM(status = 'ready') > 0;

关于mysql - 如何进行 SQL 查询,其中 WHERE 中将出现 2 次 "AND",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72084394/

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