【发布时间】:2014-10-06 15:08:31
【问题描述】:
我正在尝试学习如何在 SQL Server 中使用 OUTER JOIN 函数,以便选择查询返回两个表中的所有值,甚至是不匹配的表。
这是我正在使用的两个示例表(男孩和女孩):
Boys:
Name City
Andrew Cape Town
Mike Paphos
Simon Amsterdam
Girls:
Name City
Georgia Paphos
Megan London
Eva Amsterdam
Stephi Cape Town
这是我写的查询:
SELECT boys.name, boys.city, girls.name, girls.city
FROM boys, girls
RIGHT OUTER JOIN boys as men ON boys.city=girls.city;
我正在尝试按如下方式返回一个表:
boys.Name boys.City girls.name girls.city
Andrew Cape Town Stephi Cape Town
Mike Paphos Georgia Paphos
Simon Amsterdam Eva Amsterdam
NULL NULL Megan London
普通的内部连接会忽略最后一行,因为它没有匹配的男孩城市。
谁能帮我解决这个问题?
谢谢!
迈克
【问题讨论】:
-
FROM boys, girls连接语法是较旧的语法(这个术语让我无法理解,atm)并使用隐式内部连接,这是您看不到所需结果的部分原因。 -
你到底为什么要为每个性别准备一张桌子?
-
只是一张废话表来说明我的问题
-
FROM boys, girls RIGHT OUTER JOIN boys- 嗯?此外,任何一个城市(例如开普敦)是否真的最多只能有一个男孩和最多一个女孩?如果开普敦有两个女孩和一个男孩,你会期待什么结果>?
标签: sql sql-server join sql-server-2012 outer-join