MySql JOINS的优点/缺点

Rob*_*itt 11 mysql select join

当我从多个表中选择数据时,我曾经经常使用JOINS,最近我开始使用另一种方式,但从长远来看,我不确定其影响.

例子:

SELECT * FROM table_1 LEFT JOIN table_2 ON (table_1.column = table_2.column)
Run Code Online (Sandbox Code Playgroud)

所以这是跨表的基本LEFT JOIN,但请看下面的查询.

SELECT * FROM table_1,table_2 WHERE table_1.column = table_2.column
Run Code Online (Sandbox Code Playgroud)

就个人而言,如果我加入,请说7个数据表,我宁愿在JOINS上这样做.

但是这两种方法有什么优缺点吗?

Mch*_*chl 10

第二种方法是INNER JOIN的快捷方式.

 SELECT * FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column
Run Code Online (Sandbox Code Playgroud)

将仅选择与两个表中的条件匹配的记录(LEFT JOIN将从左侧的表中选择所有记录,并从右侧的表中选择匹配的记录)

引自http://dev.mysql.com/doc/refman/5.0/en/join.html

[...]我们将table_reference项列表中的每个逗号视为等同于内连接

在没有连接条件的情况下,INNER JOIN和(逗号)在语义上是等价的:两者在指定的表之间产生笛卡尔积(即,第一个表中的每一行都连接到第二个表中的每一行) ).

但是,逗号运算符的优先级小于INNER JOIN,CROSS JOIN,LEFT JOIN等.如果在存在连接条件时将逗号连接与其他连接类型混合,则可能会出现'on子句'中未知列'col_name'形式的错误.有关处理此问题的信息将在本节后面给出.

一般来说,有很多提到的东西,应该让你考虑不使用逗号.