SQL:LEFT JOIN 多次连接同一张表

以前一直没有注意到LEFT JOIN 多次向同一表进行连接所带来的快捷,本来以为一条SQL语句实现不了,后来同事给指点了下,最后用了一条SQL语句给解决了。实在找不到比较容易的例子来说明这个问题,所以暂时只能先帖上SQL语句了,等那天想到了,再把详细清单给附上。

代码如下:

SELECT
    [募资公布日]=CONVERT(VARCHAR(10),CFIP2,121),
    [发行起始日]=CONVERT(VARCHAR(10),PublishDate,121),
    [发行截止日]=CONVERT(VARCHAR(10),CFIP1,121), [发行方式]=CFIP28,
    [发行类型]=CFIP5,
    [发行前总份额]=CFIP7,
    [扩募比例]=CFIP6,
    [权益登记日]=CONVERT(VARCHAR(10),CFIP14,121),
    [除权基准日]=CONVERT(VARCHAR(10),CFIP15,121),
    [本次发行份额]=CFIP8,
    [单位面值]=CFIP9,
    [单位发行价]=CFIP10,
    [单位发行费用]=CFIP11,
    [募集资金合计]=CFIP17,
    [发起人认购]=CFIP12,
    [社会认购份额]=CFIP26,
    [发行中签率]=CFIP18,
    [认购倍数]=CFIP22,
    [扩募协调人]=ISNULL(p.FParty5,'-'),
    [上市推荐人]=ISNULL(p1. FParty5,'-'),
    [主承销商]=ISNULL(p2. FParty5,'-')
FROM CFIP c LEFT JOIN FParty p ON c.Symbol = p.Symbol AND  p.fparty1='发行协调人'
LEFT OUTER JOIN FParty p1 ON c.Symbol = p1.Symbol AND p1.fparty1='基金管理人'
LEFT JOIN FParty p2 ON c.Symbol = p2.Symbol AND p2.fparty1='主承销商'
WHERE c.Symbol = '500011'

 

这里需要说明的是当CFIP表多次向FPARTY表发出左关联,就能一次性取得FPARTY表中多条记录的值。

机器人 2007-10-22  10:29 于 北京 (准备休息了,一般在睡觉之前,总喜欢看上半小时的书,也就是说,我是晚11:00关灯睡觉

此条目发表在 mysql 分类目录,贴了 , , , 标签。将固定链接加入收藏夹。

SQL:LEFT JOIN 多次连接同一张表》有 1 条评论

  1. yclimw 说:

    谢谢,正在做数据库多表联查,刚好能用到。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>