我有一个3个数据库的数据库(见截图)
我需要返回允许营销的客户。
我能够使用where子句返回客户名称,但我不知道如何过滤允许营销的客户。我已经查看过where和join子句,但也许我错过了什么?
任何帮助都会非常感激。
答案 0 :(得分:0)
SELECT Title
FROM Customer AS Cust
WHERE EXISTS (SELECT *
FROM Statuses AS S
WHERE S.statusID = Cust.statusID
AND S.isMarketingAllowed = 1);
请注意: 虽然通过JOIN操作可以获得相同的结果,但性能相似,但我认为它的可读性较差。当您需要从第二个表中访问数据(通过select子句)时,应该使用JOIN操作。
答案 1 :(得分:0)
它看起来像是:
SELECT c.Forename, c.Surname, c.Email, t.Description, s.IsMarketingAllowed
FROM Customer c
INNER JOIN Statuses s ON c.StatusID = s.StatusID
INNER JOIN Titles t ON c.Title = t.TitleID
WHERE s.IsMarketingAllowed = 1