gpt4 book ai didi

MySql 如何结合 LEFT JOIN 查询和 NOT IN 查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:47 24 4
gpt4 key购买 nike

我需要将 LEFT JOIN 查询与 NOT IN 查询结合起来,并且必须从这些查询中获取结果值。我在分别使用这两个查询时得到了正确的结果。

我有两个表可能是 useranswer

用户

user_id 
1
2
3
4
5

答案

user_id     date 
1 2015-10-15 21:23:14
2 2015-10-15 20:23:14
3 2015-11-11 16:23:14

LEFT JOIN 查询:

SELECT user.user_id
FROM user
LEFT JOIN answer
ON user.user_id = answer.user_id
WHERE DATEDIFF(NOW(),answer.date) > 5

此查询返回结果 user_id 1,2。

NOT IN 查询:

SELECT user.user_id 
FROM user
WHERE user.user_id NOT IN (SELECT answer.user_id FROM answer)

此查询返回结果 user_ids 4, 5。

我需要将这两个查询组合成一个查询,所以我尝试了以下两个查询:

 SELECT user.user_id 
FROM user
LEFT JOIN answer
ON user.user_id = answer.user_id
WHERE (DATEDIFF(NOW(),answer.date) > 5
AND user.user_id NOT IN (SELECT answer.user_id FROM answer))

 SELECT user.user_id 
FROM user
LEFT JOIN answer
ON user.user_id = answer.user_id
WHERE user.user_id NOT IN (SELECT answer.user_id FROM answer)
AND DATEDIFF(NOW(),answer.date) > 5

但是这些返回空的 user_id

编辑

预期结果应包含值 1,2,4,5

最佳答案

如果您的意思是将 2 个选择组合在一起
尝试Union All/Union:

SELECT * FROM 
(
SELECT [WITH YOUR LEFT JOIN STATEMENT]
UNION
SELECT [WITH YOUR NOT IN STATEMENT]
) ResultTABLE

关于MySql 如何结合 LEFT JOIN 查询和 NOT IN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33668999/

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