gpt4 book ai didi

mysql - 在sql查询中使用exists的两种情况

转载 作者:行者123 更新时间:2023-11-29 06:05:57 25 4
gpt4 key购买 nike

我正在尝试进行查询,内容如下:如果客户没有发票,但在过去 6 个月内有预约,请给我他们的 clientId 和姓名 以下结果返回并为空集.

SELECT clients.clientId, clients.studentFirstName, clients.studentLastName 
FROM clients, invoices, appointments
WHERE (NOT EXISTS
(SELECT *
FROM invoices, clients
WHERE invoices.clientId = clients.clientId))
AND (EXISTS
(SELECT * FROM appointments, clients
WHERE appointments.clientId = invoices.clientId
AND appointments.date >= DATE_ADD(curdate(), INTERVAL 6 MONTH)));

编辑:最终工作的查询是在对约翰的答案进行一些调整后创建的:

 SELECT  a.clientID,
a.studentFirstName,
a.studentLastName
FROM clients a
LEFT JOIN invoices b
on a.clientID = b.clientID
LEFT JOIN appointments c
on a.clientID = c.clientID
WHERE b.clientId IS NULL AND
c.`date` >= DATE_SUB(curdate(), INTERVAL 6 MONTH)

最佳答案

改用LEFT JOIN

SELECT  a.ClientID,
a.studentFirstName,
a.clients.studentLastName
FROM clients a
LEFT JOIN invoices b
on a.ClientID = b.ClientID
LEFT JOIN appointments c
on a.ClientID = c.ClientID
WHERE b.Client IS NULL AND
c.`Date` >= DATE_SUB(curdate(), INTERVAL 6 MONTH)

关于mysql - 在sql查询中使用exists的两种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11488924/

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