MySQL中JOIN的用法(简化明确版)
MySQL中涉及到多表连接的话,可以使用如下几种JOIN
1. ','逗号运算符
例如
SELECT * FROM table1,table2 WHERE where_condition
2. [CROSS | INNER] JOIN (交叉连接和内连接,结果都是产生笛卡尔积,但在标准SQL中两者
MySQL中涉及到多表连接的话,可以使用如下几种JOIN
1. ','逗号运算符
例如
SELECT * FROM table1,table2 WHERE where_condition
2. [CROSS | INNER] JOIN (交叉连接和内连接,结果都是产生笛卡尔积,但在标准SQL中两者
<wbr></wbr>是不同的,可以参看上篇介绍)
例如
SELECT * FROM table1 JOIN table2 ON table1.column_1=table2.column_2 WHERE table1.column_1='something'
或者
SELECT * FROM table1 AS a JOIN table2 AS b ON a.column_1=b.column_2 WHERE a.column_1='something'
或者
SELECT * FROM table1 JOIN table2 USING (column) WHERE table1.column='something ' (当被连接的两个表的连接列名称相同的话)
3. LEFT [OUTER] JOIN (或者RIGHT [OUTER] JOIN) (左外连接,或者右外连接)
例如
SELECT * FROM table1 LEFT JOIN table2 ON table1.column_1=table2.column_2 WHERE table1.column_1='something'
或者
SELECT * FROM table1 AS a LEFT JOIN table2 AS b ON a.column_1=b.column_2 WHERE a.column_1='something'
或者
SELECT * FROM table1 LEFT JOIN table2 USING (column) WHERE table1.column='something' (当被连接的两个表的连接列名称相同的话)
可以在后面指定连接条件
1. ON 之后跟连接条件,如果连接的列名称相同的话,可以使用USING
2. WHERE后指定限定条件,指定限制的列,例如:WHERE table1.column='hello'
涉及到多表查询的时候,可以考虑以上3中方式,然后使用EXPLA<wbr></wbr>IN查看MySQL处理这三种语句的搜索复杂度,从而采用更好的。
例如
SELECT * FROM table1 JOIN table2 ON table1.column_1=table2.column_2 WHERE table1.column_1='something'
或者
SELECT * FROM table1 AS a JOIN table2 AS b ON a.column_1=b.column_2 WHERE a.column_1='something'
或者
SELECT * FROM table1 JOIN table2 USING (column) WHERE table1.column='something ' (当被连接的两个表的连接列名称相同的话)
3. LEFT [OUTER] JOIN (或者RIGHT [OUTER] JOIN) (左外连接,或者右外连接)
例如
SELECT * FROM table1 LEFT JOIN table2 ON table1.column_1=table2.column_2 WHERE table1.column_1='something'
或者
SELECT * FROM table1 AS a LEFT JOIN table2 AS b ON a.column_1=b.column_2 WHERE a.column_1='something'
或者
SELECT * FROM table1 LEFT JOIN table2 USING (column) WHERE table1.column='something' (当被连接的两个表的连接列名称相同的话)
可以在后面指定连接条件
1. ON 之后跟连接条件,如果连接的列名称相同的话,可以使用USING
2. WHERE后指定限定条件,指定限制的列,例如:WHERE table1.column='hello'
涉及到多表查询的时候,可以考虑以上3中方式,然后使用EXPLA<wbr></wbr>IN查看MySQL处理这三种语句的搜索复杂度,从而采用更好的。