Internet+大会和Google请来的大师

上周五Google办的Internet+大会还是很让人回味的。

首先是周三周四两天要陪着Google请来的大师们到办公室体验白领生活,到网吧体验网民生活,到胡同体验居家生活,以及到酒吧体验酒鬼生活。体验生活这一条很重要,否则老外就不可能知道中国人为什么总爱在新闻和八卦里消磨网上时间,不可能知道什么叫“有才”,什么叫“人品”,当然也不可能知道为什么自称愤青的毛头小伙子在今天的中国格外地多。

Apache的主席其实也是Googler,留了十几年的长发,一到后海就找好酒喝,一沾好酒就无法自拔,一无法自拔就唠叨个没完。从威士忌有多少种做法与喝法,到开源协议有多少种组合方式,从中国有几个省吃辣的,到自己一年飞多少个国家⋯⋯唠得兴起,还要跟旁边过生日的美眉问声好,蹭一块生日蛋糕吃。

上午的大会捧的是主角Vint Cerf,老人家站在台上,精神矍铄的样子,很是让人艳羡。老人家讲的什么不重要,左右不过是给所有从事Internet产业的人画张好看的大饼。最重要的是老人家讲话时,大屏幕显示的是地地道道的中文幻灯片,的确让不少听众诧异了好半天。其实也没什么好诧异的,那不过是另一个Googler和我躲在总控台上,看着老人家自己笔记本上切出来的英文信号,手工切换的另一份中文幻灯罢了。呵呵,技术至上的Googler居然还在拿这种低级的手工把戏蒙人,也算一桩笑谈了。

下午三个分会场一共九个专题演讲。据说最火爆的有两个。一个是立峰在大会场讲搜索,讲得生动精彩,观众掌声不息。另一个是Joshua在阶梯教室讲的 Java,一时人满为患,好不热闹。我大多数时间在阶梯教室帮忙,听众里印象最深的是个女生,Mozilla CEO演讲时她就因为提问从我手里拿走了个毛毛熊,Joshua讲完,她又从Joshua手里拿到了第二个毛毛熊,好像还拿到了Joshua的签名,幸福得像花儿一样了。

Joshua真的是个大好人,大会前一天到现场试设备,他就为了调整自己幻灯片的字体颜色,好几次跑到阶梯教室的最后一排看效果。今天白天在公司,他又给我们做了两个技术讲座,还抽了一大块时间和我们一起讨论技术问题。当然,Mozilla的女CEO也非常友善,演讲完了还对我们抱怨说没有给她留足够的时间回答问题。一起吃饭时知道,这位Mozilla的女CEO居然20年前在北大当过访问学生,还能用中文告诉我北大南边有个地方叫友谊饭馆(可能她那会儿总到友谊宾馆吃饭,所以记成饭馆了)。呵呵,又一个来自远方的校友。

……
<think>我们被要求提供一个FULL OUTER JOIN的SQL示例。根据引用,FULL OUTER JOIN会返回两个表中所有记录,即使某些记录在另一个表中没有匹配。如果没有匹配,则结果中对应的部分为NULL。 为了构造一个示例,我们可以假设有两个表:Employees(员工表)Departments(部门表)。我们想要列出所有员工所有部门,即使某些员工没有分配部门或某些部门没有员工。 表结构可能如下: 表: Employees | EmployeeID | EmployeeName | DepartmentID | |------------|--------------|--------------| | 1 | Alice | 101 | | 2 | Bob | 102 | | 3 | Charlie | NULL | 表: Departments | DepartmentID | DepartmentName | |--------------|----------------| | 101 | Sales | | 102 | Marketing | | 103 | HR | 注意:员工Charlie没有部门(DepartmentID为NULL),部门HR没有员工。 使用FULL OUTER JOIN,我们可以将这两个表连接起来,以显示所有员工所有部门,包括没有匹配的情况。 示例SQL: ```sql SELECT e.EmployeeName, d.DepartmentName FROM Employees e FULL OUTER JOIN Departments d ON e.DepartmentID = d.DepartmentID; ``` 预期结果: | EmployeeName | DepartmentName | |--------------|----------------| | Alice | Sales | | Bob | Marketing | | Charlie | NULL | | NULL | HR | 这样,我们得到了所有员工(包括没有部门的Charlie)所有部门(包括没有员工的HR)。 注意:不同的数据库系统对FULL OUTER JOIN的支持可能不同。例如,MySQL不支持FULL OUTER JOIN,但可以通过LEFT JOINRIGHT JOIN的UNION来模拟。而SQL Server、PostgreSQL、Oracle等支持FULL OUTER JOIN。 如果是在MySQL中,我们可以这样模拟: ```sql SELECT e.EmployeeName, d.DepartmentName FROM Employees e LEFT JOIN Departments d ON e.DepartmentID = d.DepartmentID UNION SELECT e.EmployeeName, d.DepartmentName FROM Employees e RIGHT JOIN Departments d ON e.DepartmentID = d.DepartmentID; ``` 这个查询将产生相同的结果。 以上就是一个FULL OUTER JOIN的示例。</think>### FULL OUTER JOIN 示例 SQL 以下是一个完整的 FULL OUTER JOIN 示例,包含建表语句、插入数据查询操作: ```sql -- 创建员工表 CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, EmployeeName VARCHAR(50), DepartmentID INT ); -- 创建部门表 CREATE TABLE Departments ( DepartmentID INT PRIMARY KEY, DepartmentName VARCHAR(50) ); -- 插入员工数据 INSERT INTO Employees VALUES (1, 'Alice', 101); INSERT INTO Employees VALUES (2, 'Bob', 102); INSERT INTO Employees VALUES (3, 'Charlie', NULL); -- 未分配部门的员工 -- 插入部门数据 INSERT INTO Departments VALUES (101, 'Sales'); INSERT INTO Departments VALUES (102, 'Marketing'); INSERT INTO Departments VALUES (103, 'HR'); -- 没有员工的部门 -- FULL OUTER JOIN 查询 SELECT e.EmployeeName, d.DepartmentName FROM Employees e FULL OUTER JOIN Departments d ON e.DepartmentID = d.DepartmentID; ``` **查询结果说明**: | EmployeeName | DepartmentName | |--------------|----------------| | Alice | Sales | | Bob | Marketing | | Charlie | NULL | -- 员工未分配部门 | NULL | HR | -- 部门没有员工 **关键特点**: 1. 包含所有员工记录(即使没有匹配部门) 2. 包含所有部门记录(即使没有匹配员工) 3. 使用`ON`指定连接条件(部门ID匹配) 4. 无匹配时显示`NULL`值[^2][^4] **应用场景**: - 识别未分配部门的员工 - 查找没有员工的部门 - 数据完整性检查 - 生成完整的人员-部门映射报告[^1] --- ### 相关问题 1. 当 MySQL 不支持 FULL OUTER JOIN 时,如何实现相同功能? 2. FULL OUTER JOIN 与 LEFT JOIN/RIGHT JOIN 的主要区别是什么? 3. 如何优化大数据表上的 FULL OUTER JOIN 性能? 4. 在 FULL OUTER JOIN 中如何处理 NULL 值更有效? [^1]: 通过本文,我们详细介绍了如何使用 SparkSQL 实现 Full Outer Join 分区表...[^1] [^2]: SQL FULL OUTER JOIN 关键字在左表或右表记录中有匹配时返回所有记录...[^2] [^3]: SQL full outer join 关键字使用语法解析...[^3] [^4]: FULL OUTER JOIN 关键字返回左表右表中所有的行...[^4]
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值