关联与进阶查询.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关联与进阶查询.ppt

關聯查詢 JOIN語法 MySQL支持以下JOIN語法, 這些語法用於SELECT語句的table_references部分和多表DELETE和UPDATE語句: table_references: table_reference [, table_reference] … table_reference: table_factor | join_table table_factor: tbl_name [[AS] alias] [{USE|IGNORE|FORCE} INDEX (key_list)] | ( table_references ) | { OJ table_reference LEFT OUTER JOIN table_reference ON conditional_expr } join_table: table_reference [INNER | CROSS] JOIN table_factor [join_condition] | table_reference STRAIGHT_JOIN table_factor | table_reference STRAIGHT_JOIN table_factor ON condition | table_reference LEFT [OUTER] JOIN table_reference join_condition | table_reference NATURAL [LEFT [OUTER]] JOIN table_factor | table_reference RIGHT [OUTER] JOIN table_reference join_condition | table_reference NATURAL [RIGHT [OUTER]] JOIN table_factor join_condition: ON conditional_expr | USING (column_list) 與SQL標準相比,table_factor的語法被擴展了。SQL標準只接受table_reference,而不是圓括号内的一系列項目。 CROSS JOIN/INNER JOIN 在MySQL中,CROSS JOIN与INNER JOIN等同, 兩者可以互相替换。 在標準SQL中,两者是不等同的。INNER JOIN與ON子句同時使用,CROSS JOIN以其它方式使用。 SELECT * FROM t1 LEFT JOIN (t2, t3, t4)?? ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c) 相當於: SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4)? ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c) …此為正規之 Join指令 SELECT t1.name, t2.salary FROM employee AS t1, info AS t2? WHERE t1.name = t2.name;· ?SELECT t1.name, t2.salary FROM employee t1, info t2? WHERE t1.name = t2.name; ON條件句是可以被用於WHERE子句的格式的任何條件。 A table reference can be aliased using tbl_name AS alias_name or tbl_name alias_name: ????? 如果對於在LEFT JOIN中的ON或USING部分中的右表没有匹配的紀錄,则對應該欄之所有列被设置为NULL再套用於右表。 如果一个表在其它表中没有对应部分,您可以使用这种方法在这种表中查找紀錄: SELECT table1.* FROM table1?? LEFT JOIN table2 ON table1.id = table2.id??WHERE table2.id IS NULL; USING(column_list)子句 用於為一系列的列進行命名。若這些列必同時在两个表中存在。 EX: 如果表a和表b都包含列c1, c2和c3,则以下联合会对比来自两个表的对应的列: ??? a LEFT JOIN b USING (c1,c2,c3) Some join examples SELECT * FROM table1, table2; SELECT * FROM table1 INNER JOIN table2 ON table1.

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档