我正在试图做一个查询,说If the customer has no invoice, but has an appointment in the last 6 months, please give me their clientId and name
以下结果返回并设置为空。使用sql查询中存在两种情况
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)
这个脚本结束了一些调整... SELECT a.clientID, a.studentFirstName, a.studentLastName 来自客户端的一个 LEFT JOIN发票b 上a.clientID = B工作.clientID LEFT JOIN上a.clientID = c.clientID 约会ç WHERE b.clientId IS NULL AND c.'Date'> = DATE_SUB(CURDATE(),INTERVAL 6个月)...我也将包括此在原始文章中正确的形式。 – radleybobins 2012-07-15 02:42:44
哦,这是一个错字错误..我的意思是'A'而不是'C' – 2012-07-15 02:43:10
非常感谢您的帮助!我会在3分钟内将此标记为正确。 – radleybobins 2012-07-15 02:43:31