【问题标题】:Customer and Order Sql Statement客户和订单 Sql 语句
【发布时间】:2009-11-16 01:41:40
【问题描述】:

TSQL 查询从具有订单的客户中选择所有记录,并从没有订单的客户中选择所有记录。表 Customer 包含 CustomerID 的主键。表 Order 包含 OrderID 的主键和 CustomerID 的外键。

【问题讨论】:

  • 我不明白。如果您不去上课,为什么要报名参加该课程?
  • 所以您只想要有订单和没有订单的客户记录?

标签: sql-server tsql


【解决方案1】:

有点像

Select yourcustomerfields, yourorderfields
From Customer
Left join Orders on Customer.OrderID = Orders.OrderID

【讨论】:

    【解决方案2】:

    我想出了这个解决方案。

    Select CustomerName
    from Customer
    Where pk_CustomerID IN
    (
    Select fk_CustomerID from Orders
    INNER JOIN Customer
    on Customer.pk_CustomerID=Orders.fk_CustomerID)
    

    /* NOT IN 代替 IN 会给其他没有订单的客户 */

    【讨论】:

    • @jero:我很抱歉,但那些 pk_fk_ 前缀必须去掉。
    猜你喜欢
    • 2011-04-21
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2021-01-27
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    相关资源
    最近更新 更多