zoukankan      html  css  js  c++  java
  • 常用sql

    多表查询:http://www.w3school.com.cn/sql/sql_join.asp

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

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    INNER JOIN Orders
    ON Persons.Id_P = Orders.Id_P
    ORDER BY Persons.LastName

    除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。

    下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

    • JOIN: 如果表中有至少一个匹配,则返回行   
    • LEFT JOIN:  关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
    • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
    • FULL JOIN: 只要其中一个表中存在匹配,就返回行
    • inner join    在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行

     2.多表统计查询

    我有一个表 h_travel 用户表  还有一个表h_travel_line 数据表
    两个表都有 u_id 值
    我要查出所有的h_travel表信息并且同时统计改用户已经发布了多少条数据
    selct * from h_travel
    select count(u_id) from h_travel_line where u_id = h_travel.u_id
    这两条语句写成一个

    例如结果是这样的
    ID UID NAME AGE LINECOUNT
    编号 用户编号 名称 年龄 已线路数
    1 23 李磊 20 87
    2 24 张三 23 24
    select *,(select count(u_id) from h_travel_line where u_id = a.u_id) 已线路数
    from h_travel a
    如此便可
    自己的:select *,(select sum(p.P_Price) as price from payTrace as p where p.P_Xh=s.Id) from  studentI as s where s.Recomm=4
    1.select sum(p.P_Price) as price from payTrace as p where p.P_Xh=s.Id 通过id把缴费金额统计起来
    2.select *,score from  studentI as s where s.Recomm=4 根据推荐人id 获取旗下信息
  • 相关阅读:
    在linux上搭建sftp服务
    FTP客户端遇到150连接超时错误的处理办法
    电脑每次开机打开微软网站怎么解决
    Linux学习笔记之认识与学习Bash
    Linux学习笔记之VIM编辑器
    Linux学习笔记之文件与文件系统的压缩与打包
    Linux学习笔记之磁盘与文件系统的管理
    Linux学习笔记之目录配置
    Linux学习笔记之档案权限与目录配置
    ubuntu修改apt源
  • 原文地址:https://www.cnblogs.com/0to9/p/5132482.html
Copyright © 2011-2022 走看看