`

inner join 和where 区别 .

    博客分类:
  • db
 
阅读更多
1 .WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE 和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。

2 .无论怎么连接,都可以用join子句,但是连接同一个表的时候,注意要定义别名,否则产生错误!

a> inner join:理解为“有效连接”,两张表中都有的数据才会显示left join:理解为“有左显示”,比如on a.field=b.field,则显示a表中存在的全部数据及a//b中都有的数据,A中有、B没有的数据以null显示

b> right join:理解为“有右显示”,比如on a.field=b.field,则显示B表中存在的全部数据及a//b中都有的数据,B中有、A没有的数据以null显示

c> full join:理解为“全连接”,两张表中所有数据都显示,实际就是inner +(left-inner)+(right-inner)

3 .join可以分主次表   外联接有三种类型:完全外联,左联,右联.
完全外联包含两张表的所有记录.
左联是以左边的表为主,右边的为辅,右联则相反

4.一般要使得数据库查询语句性能好点遵循一下原则:

•   在做表与表的连接查询时,大表在前,小表在
•不使用表别名,通过字段前缀区分不同表中的字段
•查询条件中的限制条件要写在表连接条件前
•尽量使用索引的字段做为查询条件
语法格式:
    其实 INNER JOIN ……ON的语法格式可以概括为:
    FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表X ON Member.字段号=表X.字段号
    您只要套用该格式就可以了。
   
    现成格式范例:
    虽然我说得已经比较明白了,但为照顾初学者,我还是以本会员注册系统为例,提供一些现成的语法格式范例,大家只要修改其中的数据表名称和字段名称即可。
   
    连接两个数据表的用法:
    FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort
    语法格式可以概括为:
    FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
   
    连接三个数据表的用法:
    FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel
    语法格式可以概括为:
    FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号
   
    连接四个数据表的用法:
    FROM ((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity
    语法格式可以概括为:
    FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号
   
    连接五个数据表的用法:
    FROM (((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity) INNER JOIN Wedlock ON Member.Wedlock=Wedlock.Wedlock
    语法格式可以概括为:
    FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号


分享到:
评论

相关推荐

    银行ATM存取款机系统

    网上找的觉得挺有用的银行ATM存取款机系统 print '开始转账,请稍后......' print '交易正在进行,请... inner join deposit on Cardinfo.savingID=deposit.savingID where customerName='张三' update tradelnfo set

    join on 语句及扩展

    Join on/inner join on/full join on/full outer join on/left join on/right join on/cross join on; 在使用jion时,on和where条件的区别;

    pcw0118#ZXBlog#七种inner join1

    第一种inner join: 第二种left join: 第三种right join: 第四种left join where b.id is null: 第五种

    ACCESS语法

    INNER JOIN-最基本的JOIN方式 SELECT 客户.公司名称, 订单.订单编号, 订单.订单日期 FROM 客户 INNER JOIN 订单 ON 客户.客户编号 = 订单.客户编号 11-2 查询指令 多资料表查询指令 LEFT及RIGHT JOIN SELECT ...

    sql语法(oracle,mysql,sqlserver)

    **多表查询 *笛卡尔积(m*n) +select e.LAST_NAME,d.NAME from s_emp e,s_dept d *笛卡尔积+连接条件 + select e.LAST_NAME,d.NAME ... from s_emp e inner join s_dept d on e.DEPT_ID = d.ID;

    Sql 语句详解

    17. SQL INNER JOIN 关键字 22 18. SQL LEFT JOIN 关键字 23 19. SQL RIGHT JOIN 关键字 24 20. SQL UNION 和 UNION ALL 操作符 26 21. SQL SELECT INTO 语句 28 22. SQL CREATE DATABASE 语句 29 23. SQL CREATE ...

    LINQ to SQL语句之Join和Order By

    说明:在Join操作中,分别为Join(Join查询), SelectMany(Select一对多选择)和GroupJoin(分组Join查询)。 该扩展方法对两个序列中键匹配的元素进行inner join操作 SelectMany 说明:我们在写查询语句时,如果被...

    JapaneseWordNet

    日语单词网 如何使用 运行下面的命令 ... sqlite3 wnjpn.db ...select word.lemma from sense inner join word on sense.wordid=word.wordid inner join synset on synset.synset=sense.synset where synset.name="ex

    K3触发器实现对物料单据管控 .txt

    inner join icstockbillentry as t5 on t5.finterid=t4.finterid and t5.fsourceinterid=t2.fsourceinterid group by t3.fbillno,t1.fdate having Cast(year(t1.fdate) as int(10))*100+Cast(month(t1.fdate) ...

    MYSQL使用inner join 进行 查询/删除/修改示例

    –查询 SELECT tp.tp_id, tp.tpmc, tp.leveid, tp.tpdz, tp.jgm, tp.scsj, tp.pbzyid, tp.ksbfsj, tp.jsbfsj, tp.status, tp.tpbz FROM qdgl_tupian tp INNER JOIN qdgl_pqb pq ON tp.tp_id=pq.tpid WHERE pq.bfjgm...

    MySQL数据库:USING子句.pptx

    表名1 INNER JOIN 表名2 USING (列名) [WHERE 条件表达式] 外连接语法格式如下: 表名1 LEFT| RIGHT JOIN 表名2 USING (列名) [WHERE 条件表达式] ; 【例】 查找Members表中所有订购过图书的会员的姓名。 SELECT ...

    SQL组装工具类,轻松应对复杂查询条件的组装

    SQL组装复杂查询条件,SELECT .. FROM .. (LEFT|RIGHT|INNER) JOIN .. ON .. WHERE .... GROUP BY .. HAVING .. ORDER BY .. LIMIT ..

    解析sql语句中left_join、inner_join中的on与where的区别

    table a(id, type):id type ———————————-1 1 2 1 3 2 table b(id, class):id class ———————————1 ...sql语句2:select a.*, b.* from a left join b on a.id = b.id where a.type = 1;s

    sql语句学习 多表连接查询

    自己学习的笔记--查询计算机系CS男学生学号、姓名和考试成绩 SELECT A.Sno,A.Sname,B.degree...SELECT A.Sno,A.Sname,B.degree FROM student A INNER JOIN sc B ON A.Sdept = 'CS' AND A.Ssex = '男' AND A.Sno = B.sno

    sql最全的常用命令语句

    from tb a inner join master.sys.dm_exec_sessions b on a.session_id=b.session_id ) select a.*,connect_time,client_tcp_port,client_net_address from tb1 a inner join master.sys.dm_exec_connections b on a...

    从两种SQL表连接写法来了解过去

    例如:一个二表连接的SQL,有两种写法: (1)select A.c1,A.c2,... 代码如下:select * from a,b where a.id=b.id select * from a inner join b on a.id=b.id —这两个哪个好? 其中11楼的回答最为深入。其实这个问题还是有

    mysql常用查询测试及答案

    -- SELECT sc.c_name,sc.grade,s.`name` FROM score sc INNER JOIN student s ON sc.stu_id=s.id and s.`name`='李四'; -- 默认为inner JOIN -- 11.用连接的方式查询所有学生的信息和考试信息 -- SELECT * FROM ...

    SQL 2008 基本和提升的SQL 语句

    INNER JOIN Person.StateProvince sp --内联接 ON sp.StateProvinceID = a.StateProvinceID INNER JOIN Person.CountryRegion cr ON cr.CountryRegionCode = sp.CountryRegionCode WHERE a.City='Bothell' -- --...

    数据库函数

    CREATE FUNCTION f_catString(@id uniqueidentifier)... INNER JOIN NoticeChecker ON StaffArchive.StaffID=NoticeChecker.CheckerID WHERE NoticeChecker.CheckNoticeID=@id return(stuff(@s,1,1,'')) END GO

    适用于任意模型的打分模块插件 for Phpcms 2008.rar

    {get sql="SELECT c.title,c.url FROM phpcms_content c INNER JOIN phpcms_point p ON c.contentid=p.itemid WHERE c.catid=栏目ID AND c.status=99 ORDER BY p.total DESC,c.contentid DESC" rows="10"} ...

Global site tag (gtag.js) - Google Analytics