SELECT * FROM table1, table2 WHERE table1.id = table2.id 返回table1,table2中ID相同的记录集SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id 表示是内部联合,这种联合没有where语句。在这里你使用的语法中的JOIN ON 不是ANSI 标准中所指定的,而是我们所使用的解释器的附加语法. 表示把table1,table2中ID相同的记录进行了组合.希望对你有帮助。
返回table1,table2中ID相同的记录集SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id
表示是内部联合,这种联合没有where语句。在这里你使用的语法中的JOIN ON 不是ANSI 标准中所指定的,而是我们所使用的解释器的附加语法.
表示把table1,table2中ID相同的记录进行了组合.希望对你有帮助。
Inner Join
Inner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。
内联接是用比较运算符比较要联接列的值的联接。
是不是,两SQL语句,内部查找的方法不一样呀?
第一个,是分别读取两个表进来
第一条是先取所有值再根据各自id是否相同来排他。第二条是根据各自id产生的交集来联结两表
使用Join的语句是作笛卡尔积操作,但不是完全的关联,是根据Where条件关条的.根据我的理解.使用where A.ID=B.ID
的方法,在A表中顺序查找,然后取出A.ID,到B表中按照索引去找B.ID,找到则提取记录到内存.
而Inner Join的,我的理解是,呵,如果单纯的就是像你上边的一个条件的话,我认为道理是一样的.但是如果表比较多的话,我认为Join能提高性能!