自我连接查询的SQL帮助

时间:2019-01-16 20:27:59

标签: sql

两个表的客户表和付款表

付款表

paymentid int
paymentdate date 
custid int 

客户表

Custid int 
name varachar
paymentcustid int

外键约束:

  1. payment.custid是指customer.custid
  2. payment.paymentcustid也指customer.custid

编写查询以获取paymentidpaymentdate的名称,customer的名称,payment customer的名称。

表结构类似于

付款表

paymentid paymentdate  custid 
100         07/11/18     1
101         08/11/18     3
102         08/11/18     4

客户表

Custid name paymentcustid
1       a       4
2       b       3
3       c       5
4       d       5
5       e       1

1 个答案:

答案 0 :(得分:0)

看起来您只需要:

SELECT
    p.paymentid,
    p.paymentdate,
    c1.name payment_customer,
    c2.name customer
FROM 
    payment p
    INNER JOIN customers c1 ON p.cust_id = c1.paymentcustid
    INNER JOIN customers c2 ON p.cust_id = c2.custid;