网站建设使用的什么网站建设 美橙

当前位置: 首页 > news >正文

网站建设使用的什么,网站建设 美橙,冬创网站建设培训中心,微信链接制作软件SQL零基础入门学习#xff08;七#xff09; SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。 下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。
SQL JOIN SQL JOIN 子句用于把来自两个或多个表的行结合起来#xff0c;基…SQL零基础入门学习七 SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。 下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。
SQL JOIN SQL JOIN 子句用于把来自两个或多个表的行结合起来基于这些表之间的共同字段。 最常见的 JOIN 类型SQL INNER JOIN简单的 JOIN。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。 语法 SELECT column1, column2, … FROM table1 JOIN table2 ON condition;参数说明 column1, column2, …要选择的字段名称可以为多个字段。如果不指定字段名称则会选择所有字段。 table1要连接的第一个表。 table2要连接的第二个表。 condition连接条件用于指定连接方式。 演示数据库 在本教程中我们将使用 RUNOOB 样本数据库。

下面是选自 “Websites” 表的数据

| id | name | url | alexa | country |

| 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | ————————————————————–下面是 “access_log” 网站访问记录表的数据

mysql SELECT * FROM access_log;

| aid | site_id | count | date |

| 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 |

| 9 | 3 | 201 | 2016-05-17 |

9 rows in set (0.00 sec)请注意“Websites” 表中的 “id” 列指向 “access_log” 表中的字段 “site_id”。上面这两个表是通过 “site_id” 列联系起来的。 然后如果我们运行下面的 SQL 语句包含 INNER JOIN SELECT Websites.id, Websites.name, access_log.count, access_log.date FROM Websites INNER JOIN access_log ON Websites.idaccess_log.site_id;执行以上 SQL 输出结果如下
不同的 SQL JOIN 在我们继续讲解实例之前我们先列出您可以使用的不同的 SQL JOIN 类型 INNER JOIN如果表中有至少一个匹配则返回行 LEFT JOIN即使右表中没有匹配也从左表返回所有的行 RIGHT JOIN即使左表中没有匹配也从右表返回所有的行 FULL JOIN只要其中一个表中存在匹配则返回行 SQL INNER JOIN 关键字 INNER JOIN 关键字在表中存在至少一个匹配时返回行。 SQL INNER JOIN 语法 SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_nametable2.column_name;或 SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_nametable2.column_name;参数说明 columns要显示的列名。 table1表1的名称。 table2表2的名称。 column_name表中用于连接的列名。 注释INNER JOIN 与 JOIN 是相同的。
演示数据库 在本教程中我们将使用 RUNOOB 样本数据库。

下面是选自 “Websites” 表的数据

| id | name | url | alexa | country |

| 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | ————————————————————–下面是 “access_log” 网站访问记录表的数据

mysql SELECT * FROM access_log;

| aid | site_id | count | date |

| 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 |

| 9 | 3 | 201 | 2016-05-17 |

9 rows in set (0.00 sec)SQL INNER JOIN 实例 下面的 SQL 语句将返回所有网站的访问记录 SELECT Websites.name, access_log.count, access_log.date FROM Websites INNER JOIN access_log ON Websites.idaccess_log.site_id ORDER BY access_log.count;执行以上 SQL 输出结果如下 注释INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 “Websites” 表中的行在 “access_log” 中没有匹配则不会列出这些行。 SQL LEFT JOIN 关键字 LEFT JOIN 关键字从左表table1返回所有的行即使右表table2中没有匹配。如果右表中没有匹配则结果为 NULL。 SQL LEFT JOIN 语法 SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_nametable2.column_name;或 SELECT column_name(s) FROM table1 LEFT OUTER JOIN table2 ON table1.column_nametable2.column_name;注释在某些数据库中LEFT JOIN 称为 LEFT OUTER JOIN。
演示数据库 在本教程中我们将使用 RUNOOB 样本数据库。

下面是选自 “Websites” 表的数据

| id | name | url | alexa | country |

| 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | ————————————————————–下面是 “access_log” 网站访问记录表的数据

mysql SELECT * FROM access_log;

| aid | site_id | count | date |

| 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 |

| 9 | 3 | 201 | 2016-05-17 |

9 rows in set (0.00 sec)SQL LEFT JOIN 实例 下面的 SQL 语句将返回所有网站及他们的访问量如果有的话。 以下实例中我们把 Websites 作为左表access_log 作为右表 SELECT Websites.name, access_log.count, access_log.date FROM Websites LEFT JOIN access_log ON Websites.idaccess_log.site_id ORDER BY access_log.count DESC;执行以上 SQL 输出结果如下 注释LEFT JOIN 关键字从左表Websites返回所有的行即使右表access_log中没有匹配。 SQL RIGHT JOIN 关键字 RIGHT JOIN 关键字从右表table2返回所有的行即使左表table1中没有匹配。如果左表中没有匹配则结果为 NULL。 SQL RIGHT JOIN 语法 SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_nametable2.column_name;或 SELECT column_name(s) FROM table1 RIGHT OUTER JOIN table2 ON table1.column_nametable2.column_name;注释在某些数据库中RIGHT JOIN 称为 RIGHT OUTER JOIN。
演示数据库 在本教程中我们将使用 RUNOOB 样本数据库。 操作前先在 access_log 表添加一条数据该数据在 Websites 表没有对应的数据

INSERT INTO access_log (aid, site_id, count, date) VALUES (10, 6, 111, 2016-03-09);下面是选自 “Websites” 表的数据

| id | name | url | alexa | country |

| 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | ————————————————————–下面是 “access_log” 网站访问记录表的数据

mysql SELECT * FROM access_log;

| aid | site_id | count | date |

| 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 | | 9 | 3 | 201 | 2016-05-17 |

| 10 | 6 | 111 | 2016-03-19 |

9 rows in set (0.00 sec)SQL RIGHT JOIN 实例 下面的 SQL 语句将返回网站的访问记录。 以下实例中我们把 Websites 作为左表access_log 作为右表 SELECT websites.name, access_log.count, access_log.date FROM websites RIGHT JOIN access_log ON access_log.site_idwebsites.id ORDER BY access_log.count DESC;执行以上 SQL 输出结果如下 注释RIGHT JOIN 关键字从右表access_log返回所有的行即使左表Websites中没有匹配。 SQL FULL OUTER JOIN 关键字 FULL OUTER JOIN 关键字只要左表table1和右表table2其中一个表中存在匹配则返回行. FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。 SQL FULL OUTER JOIN 语法 SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_nametable2.column_name;演示数据库 在本教程中我们将使用 RUNOOB 样本数据库。

下面是选自 “Websites” 表的数据

| id | name | url | alexa | country |

| 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND |

————————————————————–下面是 “access_log” 网站访问记录表的数据

| aid | site_id | count | date |

| 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 |

| 9 | 3 | 201 | 2016-05-17 |

9 rows in set (0.00 sec)SQL FULL OUTER JOIN 实例 下面的 SQL 语句选取所有网站访问记录。 MySQL中不支持 FULL OUTER JOIN你可以在 SQL Server 测试以下实例。 SELECT Websites.name, access_log.count, access_log.date FROM Websites FULL OUTER JOIN access_log ON Websites.idaccess_log.site_id ORDER BY access_log.count DESC;注释FULL OUTER JOIN 关键字返回左表Websites和右表access_log中所有的行。如果 “Websites” 表中的行在 “access_log” 中没有匹配或者 “access_log” 表中的行在 “Websites” 表中没有匹配也会列出这些行。