返回位值= 1的SQL结果

时间:2017-10-15 16:21:09

标签: mysql sql sql-server rdbms

我有一个3个数据库的数据库(见截图)

enter image description here

我需要返回允许营销的客户。

我能够使用where子句返回客户名称,但我不知道如何过滤允许营销的客户。我已经查看过where和join子句,但也许我错过了什么?

任何帮助都会非常感激。

2 个答案:

答案 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