美文网首页
MySQL——连接查询(特殊的多表查询)

MySQL——连接查询(特殊的多表查询)

作者: 刘铁崧 | 来源:发表于2021-12-22 22:31 被阅读0次

    连接查询(将具有管理关系的多个表连接起来进行查询操作)

    1. 内连接

    语法格式:
    · SELECT 字段名列表 FROM 表1 INNER JOIN 表2 ON 连接条件;
    · SELECT 字段名列表 FROM 表1 INNER JOIN 表2 ON 连接条件 INNER JOIN 表2 ON 连接条件 ...;(多次内联)

    案例:省、市、县 三个表中查询信息,县中的father_id对应市的id,市中的father_id对应省中的province_id
    (普通多表查询中有案例表可参考)

    查出所有的省市信息
    SELECT provincelist.province_name,citylist.city_name FROM provincelist
    INNER JOIN citylist
    ON provincelist.privince_id=citylist.father_id;
    
    查询出所有省市县信息
    SELECT provincelist.province_name,citylist.city_name,countrylist.country_name FROM provincelist
    INNER JOIN citylist
    ON provincelist.privince_id=citylist.father_id
    INNER JOIN countrylist
    ON citylist.city_id=countrylist.father_id;
    
    2. 外连接(与其他区别:匹配不成功的记录会显示为NULL,普通多表查询与内连接查询不显示匹配失败的记录)

    左连接(以左表为主,显示查询结果)
    拿左表为基准,去右表寻找与左表相匹配的记录,有值则记录,无值则置NULL
    语法格式:
    · SELECT 字段名列表 FROM 表1 LEFT JOIN 表2 ON 连接条件;
    · SELECT 字段名列表 FROM 表1 LEFT JOIN 表2 ON 连接条件 LEFT JOIN 表3 ON 连接条件...;
    右连接
    语法格式:
    · SELECT 字段名列表 FROM 表1 RIGHT JOIN 表2 ON 连接条件;
    · SELECT 字段名列表 FROM 表1 RIGHT JOIN 表2 ON 连接条件 RIGHT JOIN 表3 ON 连接条件...;

    案例:

    查询出所有省市县信息(以左表参数为基准)
    SELECT provincelist.province_name,citylist.city_name,countrylist.country_name FROM provincelist
    LEFT JOIN citylist
    ON provincelist.privince_id=citylist.father_id
    LEFT JOIN countrylist
    ON citylist.city_id=countrylist.father_id;
    
    查询出所有省市县信息(以右表参数为基准)
    SELECT provincelist.province_name,citylist.city_name,countrylist.country_name FROM provincelist
    RIGHT JOIN citylist
    ON provincelist.privince_id=citylist.father_id
    RIGHT JOIN countrylist
    ON citylist.city_id=countrylist.father_id;
    
    

    相关文章

      网友评论

          本文标题:MySQL——连接查询(特殊的多表查询)

          本文链接:https://www.haomeiwen.com/subject/guxfqrtx.html