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 表名称;
  • 相关阅读:
    Java Web Start应用管理
    搭建java开发环境需要什么软件,怎么搭建java开发环境?
    制作WinPE
    今天看见.do网页,疑惑,这是什么文件??又是什么新技术??查了一下
    VC用ADO访问数据库全攻略
    ASP连接11种数据库语法总结
    asp.net里导出excel表方法汇总
    ASP.NET 发邮件方法
    ASP.NET 网站开发日常异常总汇(持续更新)
    javascript操作JSON
  • 原文地址:https://www.cnblogs.com/brokencolor/p/9858678.html
Copyright © 2011-2022 走看看