zoukankan      html  css  js  c++  java
  • SQL之join

    QL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

    有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

    数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起

    INNER JOIN 

    在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

    1 SELECT column_name(s)
    2 FROM table_name1
    3 INNER JOIN table_name2 
    4 ON table_name1.column_name=table_name2.column_name

    LEFT JOIN 

    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

    1 SELECT column_name(s)
    2 FROM table_name1
    3 LEFT JOIN table_name2 
    4 ON table_name1.column_name=table_name2.column_name

    RIGHT JOIN 

    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

    1 SELECT column_name(s)
    2 FROM table_name1
    3 RIGHT JOIN table_name2 
    4 ON table_name1.column_name=table_name2.column_name

    FULL JOIN

    只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

    SELECT column_name(s)
    FROM table_name1
    FULL JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    
    

    实战

     1 #连表更新
     2 UPDATE table_name1
     3 INNER JOIN table_name2 
     4 ON  table_name1.col=table_name2.col SET 列名称 = 新值 WHERE 列名称 = 某值
     5 
     6 
     7 #删除名字重复的数据,留下id最小的
     8 DELETE t1 FROM `user` t1 LEFT JOIN (
     9 SELECT * FROM `user`GROUP BY user_name 
    10 HAVING COUNT(user_name)>=2
    11 ) t2 ON t1.user_name = t2.user_name 
    12 WHERE t1.user_id > t2.user_id
    13 
    14 
    15 #创建表同时插入数据
    16 CREATE TABLE 表名称
    17 (
    18 列名称1 数据类型,
    19 列名称2 数据类型,
    20 列名称3 数据类型,
    21 ....
    22 )
    23 SELECT 列名称 FROM 表名称;
  • 相关阅读:
    Dom页面加载
    Redis
    Ubuntu下git的安装与使用
    类Xadmin插件--海豚插件
    Python基础指随笔
    前端必须掌握30个CSS3选择器
    SweetAlert插件示例
    Pylint在项目中的使用
    django Cookie、Session和自定义分页
    django创建超级用户
  • 原文地址:https://www.cnblogs.com/brokencolor/p/9858678.html
Copyright © 2011-2022 走看看