常用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 获取旗下信息
posted @ 2016-01-15 10:05  少时不知贵  阅读(213)  评论(0编辑  收藏  举报