如何在sql中选择3条外键记录

我很抱歉我的英语不好。我有一个项目注册表:比如


Type of service | Total Amount | prepayment | last payment  | Cost of tolls 

   web design   |      1000    |  1 (F-key) |  2 (F-key)    |   3 (F-key)

付款状态和金额的第二个表


  id   |  amount  |   Payment status  |    Description

  1    |   400    |        yes        |   for prepayment  

  2    |   600    |        no         |   for last payment 

  3    |    0     |        no         |   for Cost of tolls 

现在我的问题是:如何连接两个表并取出所有三列?


我已经用这段代码取出了预付款栏


SELECT mzmx_request.service, mzmx_request.amount,

(mzmx_payment.payment) as prepayment,

(mzmx_payment.status) as prepayment_status 

FROM mzmx_request

JOIN mzmx_payment ON mzmx_request.prepayment = mzmx_payment.id

如何再添加两列?


JOIN mzmx_payment ON mzmx_request.payment = mzmx_payment.id

JOIN mzmx_payment ON mzmx_request.pay_more = mzmx_payment.id


翻阅古今
浏览 133回答 2
2回答

墨色风雨

只需加入三次即可。你已经做过一次了。例如:SELECT  r.service,   r.amount,  pp.payment as prepayment,  pp.status as prepayment_status,  lp.payment as last_payment,  lp.status as last_payment_status,  ct.payment as cost_of_tolls,  ct.status as cost_of_tolls_status FROM mzmx_request rleft JOIN mzmx_payment pp ON r.prepayment = pp.idleft JOIN mzmx_payment lp ON r.lastpayment = lp.idleft JOIN mzmx_payment ct ON r.costoftolls = ct.id由于您要针对同一张表加入三次,因此您需要为该表添加别名。在这种情况下,我使用别名pp、lp和ct分别表示预付款、最后付款和通行费。

喵喔喔

3 个引用字段是独立的 - 因此它们需要独立的引用表副本:SELECT *FROM mainJOIN slave AS slave1 ON main.prepayment    = slave1.idJOIN slave AS slave2 ON main.last_payment  = slave2.idJOIN slave AS slave3 ON main.cost_of_tolls = slave3.id
打开App,查看更多内容
随时随地看视频慕课网APP