qq_42546893
2019-03-02 13:08
采纳率: 50%
浏览 2.6k

请问数据库五张表如何关联查询?

五张表如下:

cdn_duty表(a)

图片说明

cdn_duty2city表(b)

图片说明

cdn_duty2province表(c)

图片说明

city_data表(d)

图片说明

province_data表(e)

图片说明

下面是我写的一部分查询:

图片说明

问题是我不明白如何将c表关联进去实现这个效果:

图片说明

小白求大神指教!!多谢!!!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qq_42546893 2019-03-04 09:44
    已采纳

    琢磨了三天终于实现了下面是完整查询语句,(可能不是最好的,欢迎大神指教!)

    SELECT
        aa.sno,
        aa.duty_name,
        aa.duty_mail,
        aa.city_name,
        concat(
            IFNULL(aa.province_name, ''),
            IFNULL(bb.province_name, '')
        ) AS province_name
    FROM
        (
            SELECT
                a.sno,
                a.duty_name,
                a.duty_mail,
                d.city_name,
                e.province_name
            FROM
                qiyq.cdn_duty AS a
            LEFT JOIN qiyq.cdn_duty2city AS b ON a.sno = b.sno_duty
            LEFT JOIN qiyq2.city_data AS d ON b.sno_city = d.sno
            LEFT JOIN qiyq2.province_data AS e ON d.sno_province = e.sno
        ) aa
    LEFT JOIN (
        SELECT
            a.sno,
            a.duty_name,
            a.duty_mail,
            e.province_name
        FROM
            qiyq.cdn_duty AS a
        LEFT JOIN qiyq.cdn_duty2province AS c ON a.sno = c.sno_duty
        LEFT JOIN qiyq2.province_data AS e ON c.sno_province = e.sno
    ) bb ON aa.sno = bb.sno
    ORDER BY
        aa.sno
    

    其中concat参考自:https://zhidao.baidu.com/question/547611101.html

    效果如下:

    图片说明

    打赏 评论
  • 带带me 2019-03-02 15:18

    right join c

    打赏 评论

相关推荐 更多相似问题