你在这里

mysql多表联合查询操作,3个表以上操作的sql语句

mysql多表联合查询操作,3个表以上操作的sql语句的相关操作如下

 
 

1 命令语言
1.1 Data操作命令DML
1.1.3 FROM
Oracle , SQL Server , DB2 , PostgreSQL , MySQL , MSAccess , ANSI
文法:
FROM table_name [ [AS] table_alias ] [ ,table_name … ]
FROM table_name [ {
INNER |
LEFT | RIGHT | FULL [ OUTER ] |
CROSS } ] JOIN table_name
{ ON join_condition | USING ( column … [ , column… ] ) }
参数:
table_name -------------------表名
table_alias --------------------表的别名
join_condition----------------结合条件式
column------------------------用作结合的列
----------------------------------------------------------------------------------------------------------------------
FROM语句是表选择语句,需要选择多个表的时候,用逗号“,”来分割所选的表。还可以用JOIN语句来定义结合条件。
表的别名
  选择的表可以取别名,在下面的例子中,FROM所选择的表名后用空格来分割别名
--例子1将表foo取别名 t1, 将表bar 取别名 t2
       SELECT * FROM foo t1 , bar t2 WHERE t1.a = t2.a
--例子2使用AS取别名
       SELECT * FROM foo AS t1 , bar AS t2 WHERE t1.a = t2.a
---------------------Oracle , SQL Server , DB2 , MySQL
这样就将表的别名取好了,这种情况下,再使用原来的表名,会出错。在使用WHERE条件时也必须用别名。一定要记住,取了别名的表和原来的表是不一样的表。
FROM语句之结合条件
       分为INNER JOIN,LEFT JOIN,RIGHT JOIN。结合条件一般分为内部结合和外部结合,INNER JOIN是内部结合,后两者为外部结合。LEFT就是表示全部保留左边表,RIGHT JOIN全部保留左边表。
       条件式用ON来指定,如果多个条件,则用AND来连接
--例子:表foo和表bar以foo.a = bar.a 来实现内部结合
       SELECT * FROM foo INNER JOIN bar ON foo.a = bar.a
三个以上的结合
三个以上表的结合是先结合两个表,然后将结果当作一个表再与另一个表结合。
--例子:将foo , bar , more 三表结合
       SELECT * FROM ( foo INNER JOIN bar ON foo.a = bar.a )
       INNER JOIN more ON foo.a = more.a
LEFT JOIN和 RIGHT JOIN
使用LEFT JOIN 和 RIGHT JOIN时,一定要注意位置。“foo LEFT JOIN bar ”就是将左边的foo表的所有行保留,匹配不上的显示NULL。反之,“foo RIGHT JOIN bar”就是将右侧的bar表全部保留,匹配不上的显示NULL。
--例子:将foo , bar 两表左结合
 
 
图1
FULL OUTER JOIN
       完整外部连接,取包含所有左侧内容和右侧内容的数据。
    需要注意的是MySQL,Access不能使用此功能
--例子:取上图foo,bar两表之FULL OUTER JOIN
       SELECT * FROM foo FULL OUTER JOIN bar ON foo.a = bar.a
结果是:
 
 
图2
CROSS JOIN
       交叉结合,取结合之表的全行数据,就好象是在连接两个表格时忘记加入一个WHERE子句一样。交叉结合时,没有结合条件。
       注意,DB2,ACCESS不能使用此语句
--例子:取图1中foo,bar两表交叉结合。
       SELECT * FROM foo CROSS JOIN bar
结果是:
 
图3

转自http://hi.baidu.com/macroelen/blog/item/da6e56ed7e1425d0b21cb122.html

mysql技术: