美文网首页
[LeetCode-SQL-Easy]183. 从不订购的客户

[LeetCode-SQL-Easy]183. 从不订购的客户

作者: AceCream佳 | 来源:发表于2019-04-09 11:54 被阅读0次

    题目:

    某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。

    Customers 表:

    Id Email
    1 Joe
    2 Henry
    3 Sam
    4 Max

    Orders 表:

    Id CustomerId
    1 3
    2 1

    例如给定上述表格,你的查询应返回:

    Customers
    Henry
    Max

    分析:

    此题应该用连接,那么使用左连接,把customer放左边。
    逐步尝试:

    SELECT
         *
    FROM
        customers LEFT JOIN orders on customers.Id=orders.CustomerId
    

    会发现

    Id Name Id(1) CustomerId
    3 Sam 1 3
    1 Joe 2 1
    4 Max null null
    2 Henry null null

    仔细看其中规律
    Max和Henry明显是在customer的Id里面有,但是order的CustomerId里面没有的。
    那么稍加变化就能写出结果:

    SELECT NAME AS
        Customers 
    FROM
        customers
        LEFT JOIN orders ON customers.Id = orders.CustomerId 
    WHERE
        orders.CustomerId IS NULL
    

    相关文章

      网友评论

          本文标题:[LeetCode-SQL-Easy]183. 从不订购的客户

          本文链接:https://www.haomeiwen.com/subject/uohbiqtx.html