视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
sql多表查询语句与方法
2020-11-09 10:04:28 责编:小采
文档

sql多表查询有很多种方法,如有自然连接 INNER JOIN,外边查询LEFT JOIN,交叉查询JOIN,交叉连接JOIN等join on left on 等多的是哦。

sql多表查询语句与方法

sql多表查询有很多种方法,如有自然连接 INNER JOIN,外边查询LEFT JOIN,交叉查询

JOIN,交叉连接JOIN等join on left on 等多的是哦。

下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:

  
  Select *
  FROM authors AS a INNER JOIN publishers AS p
  ON a.city=p.city

又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state)

  
  Select a.*,p.pub_id,p.pub_name,p.country
  FROM authors AS a INNER JOIN publishers AS p
  ON a.city=p.city

外边查询

Select a.*,b.* FROM luntan LEFT JOIN usertable as b
  ON a.username=b.username


  
下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市

  
  Select a.*,b.*
  FROM city as a FULL OUTER JOIN user as b
  ON a.username=b.username

交叉查询

交叉连接不带Where 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集

合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的

数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接

检索到的记录数将等于6*8=48行。

  
  Select type,pub_name
  FROM titles CROSS JOIN publishers
  ORDER BY type


使用左外连接将论坛内容和作者信息连接起来:

Select a.*,b.* FROM luntan LEFT JOIN usertable as b

ON a.username=b.username

下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市

Select a.*,b.*

FROM city as a FULL OUTER JOIN user as b

ON a.username=b.username


(三)交叉连接

交叉连接不带Where 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集

合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的

数据行数。

例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记

录数将等

于6*8=48行。

Select type,pub_name

FROM titles CROSS JOIN publishers

orDER BY type

下面我们来看一个我写的多表查询吧

$sql = "Select zgy_jobs_faces.*,zgy_jobs_index.*,zgy_jobs_option.* from

zgy_jobs_faces,zgy_jobs_index,zgy_jobs_option where zgy_jobs_option.mulplace

='$city' and zgy_jobs_faces.djobskinds ='$parttime' and zgy_jobs_faces.cid=

zgy_jobs_option.cid and zgy_jobs_option.cid = zgy_jobs_index.cid group by

zgy_jobs_faces.jname order by zgy_jobs_option.jid desc limit 0,30";

用group by 过滤重复的数据

关键词:sql查询,多表查询

下载本文
显示全文
专题