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'形式的错误.有关处理此问题的信息将在本节后面给出.
一般来说,有很多提到的东西,应该让你考虑不使用逗号.